You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MatLab中用for循环删除矩阵第i列并生成对应矩阵

用For循环生成移除每一列的Matlab矩阵

原矩阵

column1column2column3column4column5
1471011
2581112
3691213

需求

通过for循环生成与原矩阵列数相同数量的新矩阵,每个新矩阵分别移除原矩阵的一列,且代码需适配任意列数的场景。

实现代码

% 定义原矩阵
original_matrix = [1 4 7 10 11;
                   2 5 8 11 12;
                   3 6 9 12 13];

% 获取原矩阵的列数,自动适配任意列数场景
num_cols = size(original_matrix, 2);

% 使用cell数组存储所有生成的矩阵
result_matrices = cell(1, num_cols);

% 循环处理每一列
for col_idx = 1:num_cols
    % 构造保留列的索引:排除当前要移除的列
    keep_cols = [1:col_idx-1, col_idx+1:num_cols];
    % 生成移除当前列后的矩阵并存入cell数组
    result_matrices{col_idx} = original_matrix(:, keep_cols);
end

代码说明

  1. 自动适配列数:通过size(original_matrix, 2)获取列数,无需手动指定循环次数,不管原矩阵是5列还是更多列都能正常运行。
  2. 结果存储与访问:用cell数组result_matrices存储每个新矩阵,访问时直接用result_matrices{1}(移除第1列的矩阵)、result_matrices{2}(移除第2列的矩阵)即可查看对应结果,与预期输出完全匹配。
  3. 列移除逻辑:每次循环中,keep_cols会生成除当前列以外的所有列索引,通过original_matrix(:, keep_cols)提取子矩阵,完成列移除操作。

内容的提问来源于stack exchange,提问作者Guest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:41:03