2014-02-12 98 views
-1

我对matlab相当新,我目前正在MATLAB上创建一个循环,将通过每列和每一行,然后增量A和B,因为它走。我知道有索引,你可以做,但我想学习如何一步一步做。我已经为它提供了伪代码,但是我正努力用MATLAB中的实际语法来做到这一点。循环通过列和行而不使用索引在matlab

伪代码:

For columns i 1-300; 
    Increment A 

    For rows j 1-4 
     Increment B 

    End 
End 

我,我一直在试图让工作实际的代码是:

%testmatrix = 4:300 Already defined earlier as a 4 row and 300 column matrix 

for i = testmatrix (:,300) 
    for j = testmatrix (4,:) 
     B=B+1   
    end 

    A=A+1 
end 

我不知道100%如何,我应该格式化代码,所以它会一直读取testmatrix(1,1)testmatrix (4,300)

任何帮助将不胜感激!

回答

0

您可以让它运行第一行以获取右栏,然后通过该栏。但你不能从矩阵养活你的运行值:

[rows cols] = size(testmatrix); %// rows=4, cols=300 
for i = 1:cols 
    for j = 1:rows 
     temp = testmatrix (j,i); %// contains the element of your matrix at (j,i) 
     B=B+1; 
    end 
    A=A+1; 
end 

分号;抑制输出到命令行。如果要在每个步骤输出A和B,请将其删除。

在这里,temp将在元素(1,1)(4,300)之间循环,您可以随心所欲地做任何事情。请注意,这通常是做大多数事情的低效方式。 Matlab支持大量高效的向量化计算,您应该使用它。但是除非我知道你想要达到什么目的,否则我无法真正帮助你。 (如果你想要的只是AB的最终值,那么就如同A=A+cols;B=B+cols*rows;一样简单。)

+0

谢谢!有用!我知道这不是最有效的方式,但我只是玩MATLAB,所以我可以更好地理解它:) – AzEz

相关问题