8

我对matlab很陌生,只需要在代码中更改一个非常小的东西。我有以下矩阵:

ans =

     1     1     1
     1     2     1
     2     1     1
     2     2     2

如何获得这个ans的行数?应该是 4

4

5 回答 5

10

您应该使用size函数:

nRows = size(myMatrix, 1);  % 1 stands for the first dimension
于 2013-06-21T08:51:20.993 回答
3

只需使用尺寸功能

size(ans, 1)
于 2013-06-21T08:51:03.043 回答
2

我发现首先定义它更具可读性

rows = @(x) size(x,1); 
cols = @(x) size(x,2);

然后使用,例如,像这样:

for y = 1:rows(myMatrix)
    for x = 1:cols(myMatrix)
        do_whatever(myMatrix(y,x))
    end
end

它可能看起来像一个小节省,但size(.., 1)必须是最常用的功能之一。

(顺便说一句,像这样循环遍历矩阵可能不是性能关键代码的最佳选择。但如果这不是问题,那么选择最易读的选择。)

于 2014-09-10T03:05:55.253 回答
2

您还可以使用一次调用同时获取行数和列数:

[rows columns] = size(myMatrix);
于 2015-06-20T11:08:28.367 回答
1

要计算矩阵中的行数:

 length(ans)

给出矩阵的最大维数. 对于二维矩阵,它是行数和列数中较大的一个。我在教程中读到长度给出了第一个非单维,但根据 MathWorks MATLAB 官方文档,这是不正确的,并且似乎是我正在使用的程序中出现错误的原因。

于 2014-12-09T17:57:02.550 回答