Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 有人可以解释在MATLAB中从矩阵中删除元素的示例吗?

以下示例出现在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] 神秘地,整个第二行和第四行中的前两个元素都已删除,但是我看不到删除元素的位置与索引向量2:2:10之间的对应关系。有人可以解释一下吗?


回答:
您给出的示例显示了线性索引 。当您拥有多维数组并为其提供单个标量或向量时,它将沿着从上到下,从左到右的每一列进行索引。这是索引每个维度的示例:

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文档



更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 03:29


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.