从Matlab中的命令窗口更新M.file变量?

时间:2014-10-01 10:26:01

标签: matlab matlab-figure matlab-guide mat

我有一个简单而有趣的问题。我很难谷歌,但我的谷歌感到不安,给了我相同的结果...... 我想知道是否可以更新常量变量表单工作区命令..

一个简单的例子:

function y =StupidQuestion

a = 10; % some value
b =[5,6,7;1,2,8];  % some value
y = b*a  % some operation

我忘了告诉你我们可以使用下面的命令

用simulink块来做
set_param('obj', 'parameter1', value1, 'parameter2', value2, ...)

我希望使用指定值3周,并且没有任何理由我想将我的值 [a,b] 更改为其他但通过命令窗口。任何的想法。等待你有趣的回复...................

2 个答案:

答案 0 :(得分:2)

您可以为输入设置默认值:

function y = foo(a,b)
if nargin < 1 || isempty(a), a = 10;            end
if nargin < 2 || isempty(b), b = [5,6,7;1,2,8]; end
y = b*a
end

您可以在没有输入的情况下致电foo()(它将使用ab的默认值)或提供您自己的值:foo(12),{{1} },foo(12,[10,20])等......

答案 1 :(得分:0)

一种可能的方法是将一些变量保存在外部文件中。请注意,在这种情况下,ab仅在功能工作区中(除非您单独加载test.mat的内容,否则您不会看到它们的值)。我传递文件名而不是硬编码,以防你需要在多个设置之间切换。

我个人更喜欢拥有一个人类可读的数据文件,但概念保持不变(你只需要一些解析器函数,它返回ab的值文件)。

a = 10; % some value
b =[5,6,7;1,2,8];  % some value
save('test.mat','a','b');
clear a b;

function y = savedvariables(filename)
    load(filename);
    y = b*a;  % some operation
end

y = savedvariables('test.mat');