当前位置:  开发笔记 > 编程语言 > 正文

有人可以解释这个在MATLAB中从矩阵中删除元素的例子吗?

如何解决《有人可以解释这个在MATLAB中从矩阵中删除元素的例子吗?》经验,为你挑选了1个好方法。

以下示例出现在MATLAB教程中:

X = [16  2 13;
     5  11  8;
     9   7 12;
     4  14  1]

使用单个下标删除单个元素或元素序列,并将剩余元素重新整形为行向量.所以:

X(2:2:10) = []

结果是:

X = [16 9 2 7 13 12 1]

神秘的是,第4行的整个第2行和前两个元素已被删除,但我看不到删除元素的位置与索引向量之间的对应关系2:2:10.有人可以解释一下吗?



1> gnovice..:

您给出的示例显示了线性索引.当你有一个多维数组并给它一个标量或向量时,它会从上到下,从左到右沿着每列进行索引.以下是索引每个维度的示例:

mat = [1 4 7; ...
       2 5 8; ...
       3 6 9];
submat = mat(1:2, 1:2);

submat将包含矩阵的左上角:[1 4; 2 5].这是因为子1:2索引中的第一个访问第一个维度(行),第二个1:2访问第二个维度(列),提取2乘2平方.如果你没有为每个维度提供一个索引,用逗号分隔,而只是一个索引,MATLAB将索引到矩阵,好像它是一个大的列向量:

submat = mat(3, 3);     % "Normal" indexing: extracts element "9"
submat = mat(9);        % Linear indexing: also extracts element "9"
submat = mat([1 5 6]);  % Extracts elements "1", "5", and "6"

有关更多详细信息,请参见MATLAB文档.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有