MATLAB:循环中的新变量/变量名

时间:2013-09-24 18:54:15

标签: matlab

这可能是一个非常有用的问题,所以我提前道歉,但是我对MATLAB很陌生,并且不断对这个简单的问题感到难过。

所以,我有一个表示有向网络的任意矩阵(D):

D = [0,1,1,0,0,0,0;
     0,0,0,1,1,0,0;
     0,0,0,0,1,0,0;
     0,0,0,0,0,1,0;
     0,0,0,0,0,1,0;
     0,0,0,0,0,0,1;
     0,0,0,0,0,0,0]

n = length(D);

我想要做的就是计算每个节点的出度。这可以使用以下命令轻松计算:

O = cumsum(D,2);
O1 = (1,n);
... for all n in D...

我只是想编写一个循环命令,以便脚本计算网络中每个节点的出度,并在此过程中创建一个新变量。我写了以下循环命令:

O = cumsum(D,2);
for i=1:n
    O_i = O(i,n)
end

但是,我只是更新相同的变量'O_i'而不是创建新变量,'O_1,...,O_7':(。

有没有办法为每个循环创建一个新变量?

非常感谢,

欧文

2 个答案:

答案 0 :(得分:0)

你想要的本质上是一个数组,谢天谢地,matlab相当不错,你可以简单地使用O(i),但最好首先初始化:O=zeros(size(D,2),1)

有人说,在这种情况下,您真正​​需要的是sum函数:O=sum(D,2),此处O(i)将是节点i的外度

答案 1 :(得分:-2)

假设您希望matlab将“​​O_i”作为变量,您希望将“O_i”格式化为“i”作为变化变量。您可以在存储变量名之前使用以下命令。即

eval(['O' num2str(i) ' = O (' num2str(i) ', n )']) ;