我有一个" data.m"包含我在主文件中不需要的少数大型数组的文件。出于所有意图和目的,它们的形式为
a1 = [1,2,3]
a2 = [3,4,5]
如何从其他脚本访问a1和a2?或者我应该将它们放在.mat文件中?如果是这样,我该怎么做?
答案 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.m
和data.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')