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