MATLAB从另一个.m文件访问一个.m文件中的数据

时间:2014-12-16 18:50:12

标签: matlab

是否有办法访问另一个.m文件中生成的数据。我想要做的是我有一个.m称之为A.m,我从.txt文件中加载了大量数据并将其分解为具有各种字段的结构。由于这占用了脚本中的大量空间,我想创建另一个.m文件,称之为B.m,在其中我可以访问在A.m中创建的结构并在B.m中绘制和执行计算。所以,基本上我想从B.m访问在A.m中创建的结构。这可能吗?

-Thanks

1 个答案:

答案 0 :(得分:1)

这里有一些事情需要考虑。首先,要限制范围,请不要使用脚本:改用函数。从另一个脚本调用脚本主要是将代码添加到第一个脚本,而与范围无关。但是,通过使用此方法,您的代码将变得难以阅读和理解。如果您希望所有代码都在同一范围内,我建议您将所有代码保存在同一个m文件中。

然而,函数具有函数范围,除非将变量声明为全局,否则只能使用函数输入参数将其传递到此范围。此外,返回值的唯一方法是使用函数输出参数。

function [out1, out2,...] = myFun(in1,in2,...)
out1 = in1*in2;
out2 = in2.^2;
...

现在到了棘手的部分。传递给函数的变量作为" copy on write"传递,这意味着变量总是作为引用传递,除非它们在脚本中被修改。使用结构时,仅复制已修改的字段。这也会对您的程序产生影响。由于您说数据很大,因此在同一函数中更改结构中太多字段可能会导致内存溢出。

无论如何,如果您只使用脚本,则不需要传递任何数据,因为范围不受影响。但是,我建议您使用函数并将结构作为输入参数传递。如果这不是您要求的,请对此答案发表评论。