如何在for循环(matlab)中压缩n-1,n-2,...?

时间:2012-10-09 23:51:31

标签: algorithm matlab matrix iteration

我希望输入标准,因为矩阵的大小每次都会减少。

我试图简化我正在做的事情,看看它是否可以冷凝。

是否有办法简化以下内容,因此不需要n-1,n-2等,代码可以适应输入矩阵。

a = [2 4 5 6; 7 5 3 5; 6 7 9 4];
a
n = length(a(1,:));
b = [5];

for i = n,

    a = a.*b;

    a(:,n-1)=[];

    a

    a = a.*b;

a(:,n-2)=[];

a

a = a.*b;

a(:,n-3)=[];

a

end

我希望能够在每次迭代时看到输出。 E.g:

a =

     2     4     5     6
     7     5     3     5
     6     7     9     4


a =

    10    20    30
    35    25    25
    30    35    20


a =

    50   150
   175   125
   150   100


a =

   750
   625
   500

2 个答案:

答案 0 :(得分:3)

使用带有语法

的FOR循环
for i = starting_index:increment:ending_index

down 从n-1计为1,如下所示:

for i = n-1:-1:1 % Count down from n-1 to 1
    a = a.*b;
    a(:,i)=[];
    a
end

答案 1 :(得分:2)

试试这个

a = [2 4 5 6; 7 5 3 5; 6 7 9 4]

n = size(a,1);
b = [5];
for i=1:n
    a = a(:,end-1).*b
end

我现在无法访问Matlab,因此可能无法按预期工作。