加载数据的函数并传递它

28日视图(30天)
你好。我想写一个函数,检查存在的一系列的变量。如果它们存在,我希望功能什么都不做。如果他们不存在,我希望函数将它们加载到工作区,通过他们的主要工作区。然而,当我运行我的代码它加载第一个文件,并将它赋给变量ans。任何帮助都是感激。
函数[cntREF sREFn w] = LoadClassData
% % % %加载预设数据创建的训练算法
如果存在(“B”,“var”)= = 1
返回;
其他的
负载(“B.mat”);
结束
如果存在(“cntREF”,“var”)= = 1
返回;
其他的
负载(“cntREF.mat”);
结束
如果存在(“sREFn”,“var”)= = 1
返回;
其他的
负载(“sREFn.mat”);
结束
如果存在(' w ',“var”)= = 1
返回;
其他的
负载(“w.mat”);
结束
结束
1评论
理查德·普林斯
理查德·普林斯 2017年2月24日
我也应该提到上面,当我运行变量的函数已经在其他地方是执行语句。这是一些本地工作区问题吗?

登录置评。

接受的答案

1月
1月 2017年2月24日
每个函数都有自己的工作空间。因为你的函数没有任何输入,在一开始没有定义的变量:
函数[cntREF sREFn w] = LoadClassData
如果存在(“B”,“var”)= = 1
%在任何情况下不会发生
结束
现在你可以加载垫文件变量B,但它没有提供作为输出,因此它不出现在调用者。函数的意义是:隐藏一切,在内部发生了什么,除了输入和输出。
1评论
理查德·普林斯
理查德·普林斯 2017年2月24日
谢谢,散去了不少。有没有一种方法能够有效地实现我想要的一个函数,或者我应该只是所有if指令进入人体的主要代码?

登录置评。

答案(1)

kowshik Thopalli
kowshik Thopalli 2017年2月24日
在其他条件- b =写负载(“b.mat”), w =负载(w.mat)等解决你的问题吗?
2的评论
kowshik Thopalli
kowshik Thopalli 2017年2月24日
是的,你是对的。它变成了一个结构。然后你必须访问使用反方向;是的。功能有自己的工作空间,不同于基本工作空间。返回matfiles加载的脚本调用这个函数。

登录置评。

类别

找到更多的在和迭代解算器输出显示帮助中心文件交换

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!