matlab中 for i=1:size(S,2) 什么意思

for i=1:size(vv,2) if(dd(i,i)>1e-4) v=[v vv(:,i)]; d=[d dd(i,i)];这一段什么意思
2024-11-26 07:44:46
推荐回答(2个)
回答1:

首先看size(vv,2)

参考网页链接

size(vv, 2)表示取矩阵vv的列数。如果vv是多维矩阵,则表示的仍然是取每个二维矩阵的列数。

举例说明如下:   

% 如果vv是2维矩阵(行向量或列向量可看为行数或列数为1的矩阵)
vv=[1, 2, 3; 4, 2, 3];
col = size(vv, 2);  % 计算结果为col=3,因为矩阵vv的列数为3 
% 如果vv是多维矩阵(以3维矩阵为例)
vv(:, :, 1)=[1, 2, 3; 4, 2, 3];
vv(:, :, 2)=[4, 2, 2; 6, 2, 4];
col = size(vv, 2);  % col的值仍然为3,因为三维矩阵vv的每个2维矩阵都有3列

 现在我们假定col=size(vv, 2)

for i=1:size(vv,2)     %循环操作,把i从1加到col,每+1,执行下列代码一次
  if(dd(i,i)>1e-4)   %若矩阵dd第i行,第i列对应的值大于10的-4次方,执行下列代码        
    v=[v vv(:,i)];   % 矩阵v=原矩阵v右边加上矩阵vv的第i列
    d=[d dd(i,i)];   % 矩阵d=原矩阵d右边加上矩阵d的第i行,第i列对应的元素

回答2:

纠正一下:

size(S,2)是指矩阵S的列数,不是行数。