2013-02-06 101 views
0

我是Matlab的初学者,我没时间学习它。所以我有下一个问题。Matlab将变量添加到堆栈

我使用字符串数据类型如x = 2; y = 3; z = x + y;。我需要声明一些变量并与它们一起工作。我可以添加变量到堆栈吗?我能写之类的函数

function addVar(name, value) { 
    stack[name] = value; 
} 

回答

0

可以使用电池阵列:

data{1} = 'x = 2'; 
data{2} = 'y = 3'; 
data{3} = 'z = x+y' 

这将产生

>> data  
data = 

    'x = 2' 'y = 3' 'z = x+y' 

,然后你可以使用它,例如,像这样:

>> for k = 1:length(data), eval(data{k}), end 
x = 
    2 

y = 
    3 

z = 
    5 
+0

哦,如果函数EVAL可以计算出与变量堆栈一起工作的“z”。这是很不错的!!谢谢!!! – GFB

0

尝试结构:

>> s = struct; 
>> s.a = 'a string'; 
>> s.b = 3; 
>> s.c = zeros(5); 
>> s 

s = 

    a: 'a string' 
    b: 3 
    c: [5x5 double] 

但总的来说,MATLAB不需要变量声明。在这里有更多的细节: http://www.mathworks.com/matlabcentral/answers/31248-variable-declaration-in-matlab

+0

我需要一些类似哈希表的变量。当函数获取字符串“z = x + y”时,尝试用哈希表中的值替换“x”和“y”并计算“z”。 – GFB