MATLAB中基于M1更新M2数组的编程实现求助
解决MATLAB数组映射替换问题
直接利用MATLAB的数组索引特性就能轻松搞定这个需求,完全不用写复杂的循环,代码简洁又高效:
% 初始化数组 M1 = [1, 2, 1, 2]; M2 = [2, 1, 3, 4]; % 核心映射替换操作 M2 = M1(M2);
原理说明
MATLAB支持用数组作为索引来批量取值:
- 当执行
M1(M2)时,程序会遍历M2中的每一个元素n,自动取出M1第n个位置的数值,再把这些数值按原顺序组合成新数组,最后赋值给M2完成更新。 - 对应你的需求场景:
- M2第一个元素是2 → 取
M1(2)=2 - M2第二个元素是1 → 取
M1(1)=1 - M2第三个元素是3 → 取
M1(3)=1 - M2第四个元素是4 → 取
M1(4)=2
最终正好得到期望的结果[2,1,1,2]
- M2第一个元素是2 → 取
运行这段代码后,直接输入M2就能验证结果啦。
内容的提问来源于stack exchange,提问作者Gavanpreet Singh
相关产品推荐
相关产品推荐

