Hua*_*ang 3 indexing matlab matrix
以下是测试代码及其矩阵索引输出.在MATLAB中是不是x(:)和x(1:end)同样的事情?为什么他们的产出不同?
>>x = [1 2 3;4 5 6]
x =
1 2 3
4 5 6
>> xx = x(:)
xx =
1
4
2
5
3
6
>> xx = x(1:end)
xx =
1 4 2 5 3 6
Run Code Online (Sandbox Code Playgroud)
在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).