查看: 123|回复: 6|关注: 0

[已解决] 如何简单的将矩阵元素映射到不同元素?

[复制链接]

新手

7 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
假设有矩阵A=[0 1 2; 3 4 1;2 4 0],将A中的元素{0 1 2 3 4} 一 一对应替换为{10 11 12 13 14},每次替换为的矩阵都不同,例如第二次替换是{0 1 2 3 4}→{8 5 6 7 4}要进行20次替换,有没有简单、快速的方法,求大神指导。

论坛优秀回答者

8

主题

1383

帖子

238

最佳答案
  • 关注者: 99
发表于 7 天前 | 显示全部楼层
整体换我还不太清楚,单独的元素换的话,
可以采用这种方式替换,A(A==1)=11; %将A中所有为1的元素换为11.
兴趣是最好的导师——让Matlab入门从游戏开始
http://www.ilovematlab.cn/thread-546885-1-1.html

新手

7 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层
悟得 发表于 2019-1-9 21:23
整体换我还不太清楚,单独的元素换的话,
可以采用这种方式替换,A(A==1)=11; %将A中所有为1的元素换为11. ...

谢谢,主要是矩阵很大,而且每次换的元素都不同,进行20次的话这样感觉很麻烦

新手

7 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层
悟得 发表于 2019-1-9 21:23
整体换我还不太清楚,单独的元素换的话,
可以采用这种方式替换,A(A==1)=11; %将A中所有为1的元素换为11. ...

谢谢,这样的话根据我现在的水平,我每次换都要分5种情况,要进行20次替换代码很长

论坛优秀回答者

专家

2748 麦片

财富积分


20003000


1

主题

3055

帖子

619

最佳答案
  • 关注者: 116
发表于 7 天前 | 显示全部楼层 |此回复为最佳答案
本帖最后由 maple1314168 于 2019-1-9 21:52 编辑
Love1314521 发表于 2019-1-9 21:26
谢谢,主要是矩阵很大,而且每次换的元素都不同,进行20次的话这样感觉很麻烦 ...
  1. A=[0 1 2; 3 4 1;2 4 0];
  2. B=[10 11 12 13 14;8 5 6 7 4];
  3. C=0:4;C=mat2cell(C,1,ones(1,5));
  4. D=arrayfun(@(i)double(subs(A,C,mat2cell(B(i,:),1,ones(1,5)))),1:2,'un',0)
复制代码

新手

7 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层

非常感谢!受教了:handshake

论坛优秀回答者

8

主题

1383

帖子

238

最佳答案
  • 关注者: 99
发表于 6 天前 | 显示全部楼层

相当于转成字符型变量吗?
兴趣是最好的导师——让Matlab入门从游戏开始
http://www.ilovematlab.cn/thread-546885-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回顶部 返回列表