如何获取矩阵中的列数?

and*_*and 32 matlab

假设我指定一个矩阵A

A = [1 2 3; 4 5 6; 7 8 9]
Run Code Online (Sandbox Code Playgroud)

如何查询A (不使用length(A))找出它有3列?

Sco*_*e T 74

使用该size()功能.

>> size(A,2)

Ans =

   3
Run Code Online (Sandbox Code Playgroud)

第二个参数指定需要哪个元素数量的维度,如果您想要列数,则该元素将为"2".

官方文件.

  • 我认为避免在矩阵上使用`length()`并使用`size()`通常是一个好习惯.当使用`length()`时你必须假设什么是最大的维度,并且我遇到了太多的错误,这个假设不正确. (12认同)

Evg*_*eev 9

虽然size(A,2)是正确的,但我发现首先定义它更具可读性

rows = @(x) size(x,1); 
cols = @(x) size(x,2);
Run Code Online (Sandbox Code Playgroud)

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

howManyColumns_in_A = cols(A)
howManyRows_in_A    = rows(A)
Run Code Online (Sandbox Code Playgroud)

它可能显示为一个小储蓄,但size(.., 1)size(.., 2)一定是一些最常用的功能,他们是不是最佳可读原样.


Mus*_*mal 5

当想要使用size()函数获取行大小时,可以使用以下代码:

size(A,1)
Run Code Online (Sandbox Code Playgroud)

它的另一种用法:

[height, width] = size(A)
Run Code Online (Sandbox Code Playgroud)

因此,您可以获得矩阵的二维。

  • 作为 Octave 的菜鸟,感谢您以易于阅读的方式写出这篇文章。 (2认同)