如何在Matlab中的不同m文件之间共享变量

时间:2016-08-17 08:31:59

标签: matlab

我有三个m文件使用相同的变量并对这些变量进行计算。我已经创建了一个索引m文件,其中我声明了所有变量,我可以使用变量名称将变量共享给剩余的m文件。我的问题是变量名称经常更改,然后我必须手动更改所有这些文件中的变量名称。如何制作一个Matlab脚本,它可以自动从索引文件中获取变量名称和值,并将它们放到剩余的m文件中。

1 个答案:

答案 0 :(得分:0)

我觉得你只需要一个小例子,你可以继续前进,所以我们走了: 首先使用不同的变量名称调用每个值。如果你有很多相同类型的值,那么数组更容易:

A0=0; A1=6; A2=12 %each one with its own name 
B=zeros(16,1); %create an array of 16 numbers
B(1)= 0; %1 is the first element of an array so care for A0
B(2)= 6;
B(8)= 12;
disp(B); % a lot of numbers and you can each address individually
disp(B(8)); %-> 12

你可以把所有这些放在你的脚本中并尝试一下。现在到功能部分。您的功能可以有输入,输出,两者都没有。如果您只想创建数据,则不需要输入而是输出。

将其保存为myfile1.m

function output = myfile1()

number=[3;5;6]; %same as number(1)=3;number(2)=5;number(3)=6
%all the names just stay in this function and the variable name is chosen in the script
output = number; %output is what the file will be

end

这是myfile2.m

function output = myfile2(input)

input=input*2;%double all the numbers 
%This will make an error if "input" is not an array with at least 3
%elements
input(3)=input(3)+2; %only input(3) + 2; 
output = input;

end

现在尝试

B=myfile1() %B will become the output of myfile1
C=myfile2(B) %B is the input of myfile2 and C will become the output
save('exp.mat','C') 

我希望这会让你开始。