x(:)和x(1:end)的矩阵索引输出不同

时间:2018-09-25 15:44:52

标签: matlab matrix indexing

以下分别是测试代码和它们的矩阵索引输出。 let fields = Object.keys(myObj) as Array<MyClass>; x(:)在MATLAB中不是一回事吗? 为什么它们的输出不同?

x(1:end)

1 个答案:

答案 0 :(得分:7)

在MATLAB中有许多不同的索引方法。这个问题涉及其中两种模式。简而言之,x(:)并不是x(1:end)的捷径。

x(1:end)等效于x(1:numel(x)),在这种情况下为x(1:6)p=1:6是带有索引的行向量。在这里,我们告诉MATLAB创建一个新的行向量,其中每个元素i对应于x(p(i))。进行x((1:6).')将产生一个列向量,因为索引数组是一个列向量。 x([1,2;3,4;5,6])将产生3x2矩阵,因为索引数组是3x2矩阵。

x(:)告诉MATLAB将数组x整形为列向量。它等效于reshape(x,[],1)