在matlab中访问不同文件中的变量

时间:2016-03-04 06:37:41

标签: matlab

我有一个" data.m"包含我在主文件中不需要的少数大型数组的文件。出于所有意图和目的,它们的形式为

a1 = [1,2,3]
a2 = [3,4,5]

如何从其他脚本访问a1和a2?或者我应该将它们放在.mat文件中?如果是这样,我该怎么做?

3 个答案:

答案 0 :(得分:2)

这是一个简单的方法:

data.m内输出您的数组:

function [a1, a2] = data( )
...
end

您可以从" main"访问这些数组。功能(例如thefunc.m)像这样:

function [ ] = thefunc( )
//say you want to store array a1 into a variable X, and array a2 into variable Y
[X, ~] = data;
[~, Y] = data;
end

当然,thefunc.mdata.m应位于同一工作目录中。

答案 1 :(得分:1)

如果变量的值是常量,最好将它们存储在MAT文件中。此外,尝试使用函数而不是脚本,除非有必要使用脚本。脚本定义全局变量,这些变量可能导致无意中覆盖许多其他问题中的变量。

答案 2 :(得分:0)

假设我们有你的data.m和一个即将使用变量的函数foo.m

data.m转换为以下格式:

function[]=data()        % defines a function with no output nor input
a1=[1 2 3];
b2='string';
%Your definitions and other code

save('DataFile.mat');      % save EVERY varible used in the code with it's name

然后在foo.m

function[]=foo()
load('DataFile.mat');      % Load all variables saved in DataFile.mat

disp(b2);

您也可以通过在save命令clear temp1 temp2之前删除临时变量来阻止临时变量与强制变量一起保存。 如果您想保存一些变量,请在一个文件中说出a1,在另一个文件中说明其他文件您可以使用save('DataFile.mat','a1')

如果要加载特定变量,可以使用load('DataFile.mat','b1')