首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有人能解释一下在MATLAB中删除矩阵元素的例子吗?

有人能解释一下在MATLAB中删除矩阵元素的例子吗?
EN

Stack Overflow用户
提问于 2009-02-21 02:55:38
回答 2查看 16.2K关注 0票数 1

下面的示例出现在MATLAB教程中:

代码语言:javascript
运行
复制
X = [16  2 13;
     5  11  8;
     9   7 12;
     4  14  1]

使用单个下标删除单个元素或元素序列,并将其余元素重塑为行向量。所以:

代码语言:javascript
运行
复制
X(2:2:10) = []

结果如下:

代码语言:javascript
运行
复制
X = [16 9 2 7 13 12 1]

奇怪的是,整个第2行和第4行的前两个元素都被删除了,但是我看不到被删除元素的位置和索引向量2:2:10之间的对应关系。有人能解释一下吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-21 02:58:30

您给出的示例显示了linear indexing。当你有一个多维数组,你给它一个单一的标量或向量,它会从上到下和从左到右沿着每一列建立索引。下面是一个索引到每个维度的示例:

代码语言:javascript
运行
复制
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将索引到矩阵中,就像它是一个大的列向量一样:

代码语言:javascript
运行
复制
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 documentation

票数 12
EN

Stack Overflow用户

发布于 2009-12-17 17:05:01

这很简单。

它基本上从本例中的第二个元素开始,以2为步长一直到第十个元素(按列排列),然后删除相应的元素。其余的元素产生一个行向量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/572021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档