matlab中全局变量放在一个.m文件中其他m文件如何使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中全局变量放在一个.m文件中其他m文件如何使用相关的知识,希望对你有一定的参考价值。

需要将其他m文件与全局变量这个m文件放在一个文件夹中吗? 也不知道我的问题说清楚没

放在一个文件夹里可以,还有一种办法就是addpath, 添加路径。 你去帮助看一下即可。 就是addpath('路径') 把你存放.m文件的文件夹加入以后都可以调用。
例如
addpath('folderName1','folderName2','folderName3' ...)
比如说文件在 c:\abc你添加就行了。具体格式查一下。
很可能是 addpath('c:\abc') 这类,我用的是mac,不熟悉windows下的路径名表现方式。
还有就是matlab右下角有一个下拉菜单里面也有,选择添加路径。
参考技术A 假设全局变量为x,在filename1.m中声明global x;然后在filename2.m中引用global x;就可以加载x了,前提是filename1.m与filename2.m在同一目录下!

Objctive-C 全局变量

一,全局变量

1,在m文件中的所有方法,类定义和函数定义之外

例:Square.m中定义一个全局变量 , 在main.m中引用

Square.m代码如下:

//
//  Square.m
//  Square
//
//  Created by Apple on 2017/9/9.
//  Copyright  2017年 Apple. All rights reserved.
//

#import "Square.h"

int global_val = 20;//定义一个全局变量

@implementation Square : Rectangle

-(void) setSide:(int)s
{
    [ self setWidth:s addHeight:s];
}
-(int) side
{
    return self.width;
}

@end

使用外部的全局变量要使用extend关键字

main.m代码如下:

//
//  main.m
//  Square
//
//  Created by Apple on 2017/9/9.
//  Copyright  2017年 Apple. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Square.h"



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        extern int global_val;//
        int s = global_val;
        NSLog(@"我得到的全局变量为 : %i" , s);
        return 0;}
}

结果如下:

技术分享

既然是全局变量,那么任何地方的修改都会在全局产生作用



进一步测试

Square.m代码:

//
//  Square.m
//  Square
//
//  Created by Apple on 2017/9/9.
//  Copyright  2017年 Apple. All rights reserved.
//

#import "Square.h"

int global_val = 20;//定义一个全局变量

@implementation Square : Rectangle

-(void) setSide:(int)s
{
    [ self setWidth:s addHeight:s];
}
-(int) side
{
    return self.width;
}
-(void) change
{
    global_val = 30;//此处改变全局变量的值
}
-(int) get_global
{
    return global_val;
}
@end

main.m

//
//  main.m
//  Square
//
//  Created by Apple on 2017/9/9.
//  Copyright  2017年 Apple. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Square.h"



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        extern int global_val;//
        int s = global_val;
        NSLog(@"我得到的全局变量为 : %i" , s);
        
        Square *mySquare = [[Square alloc] init];
        [mySquare change];
        NSLog(@"Square change 后 s : %i     ;;;;;  的全局变量 : %i" , s , global_val);
        
        global_val = 100;
        NSLog(@"s = %i , Square 中的全局变量 : %i " , s , [mySquare get_global]);
        return 0;}
}

结果:

技术分享

本文出自 “Better_Power_Wisdom” 博客,请务必保留此出处http://aonaufly.blog.51cto.com/3554853/1964430

以上是关于matlab中全局变量放在一个.m文件中其他m文件如何使用的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中,M脚本文件和M函数文件的主要区别是啥?

20-matlab全排列-函数调用

matlAB如何保存变量?

matlab callback 数据传递

matlab,简述脚本M文件和函数M文件的区别?

matlAB如何保存变量