我对matlab很陌生,只需要在代码中更改一个非常小的东西。我有以下矩阵:
ans =
1 1 1
1 2 1
2 1 1
2 2 2
如何获得这个ans的行数?应该是 4
您应该使用size函数:
nRows = size(myMatrix, 1); % 1 stands for the first dimension
只需使用尺寸功能
size(ans, 1)
我发现首先定义它更具可读性
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)
必须是最常用的功能之一。
(顺便说一句,像这样循环遍历矩阵可能不是性能关键代码的最佳选择。但如果这不是问题,那么选择最易读的选择。)
您还可以使用一次调用同时获取行数和列数:
[rows columns] = size(myMatrix);
要计算矩阵中的行数:
length(ans)
给出矩阵的最大维数. 对于二维矩阵,它是行数和列数中较大的一个。我在教程中读到长度给出了第一个非单维,但根据 MathWorks MATLAB 官方文档,这是不正确的,并且似乎是我正在使用的程序中出现错误的原因。