作者MrsJ (MrsJ)
看板MATLAB
标题[问题] 矩阵元素的重新分配疑问 ?
时间Fri Jun 17 15:32:56 2016
各位先进好 自修matlab中 目前遇到一个小瓶颈
没法用(我已知的)语法建构我所需(较庞大的)的矩阵
问题简化描述如下:
令 7x2 矩阵 MatA=
[ 2.0000 3.4641
4.0000 3.7417
5.0000 3.8730
6.0000 4.0000
8.0000 4.2426
10.0000 4.4721
13.0000 5.0898 ]
这里想构造另一个更大的 15x2 矩阵 MatB, 比如说
令 MatB= ( 方便起见 MatB(1,1) = 1.000 )
[ 1.0000 0
2.0000 3.4641
3.0000 0
4.0000 3.7417
5.0000 3.8730
6.0000 4.0000
7.0000 0
8.0000 4.2426
9.0000 0
10.0000 4.4721
11.0000 0
12.0000 0
13.0000 5.0898
14.0000 0
15.0000 0 ]
亦即规则是, 若 MatB(:,1)的某元素 MatB(N,1) 在MatA(:,1)中是不存在的
那麽就令 MatB(N,2)=0
因为实际需要处理的矩阵dimension更大 不可能蠢到手动插值
目前也找不到合适的 fuction 可以直接把MatA的元素分解排进 MatB 中
想尝试使用再加一个回圈来执行这个要求 ... 我不幸卡住。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.193.64
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1466148780.A.532.html
1F:→ name0625: MatA的第一个column都是整数吗? 06/17 15:50
2F:→ name0625: 如果是的话,不知道这样符不符合你的需求↓ 06/17 15:57
3F:→ name0625: MatB=zeros(max(MatA(:,1)),1); 06/17 15:58
4F:→ name0625: MatB(MatA(:,1))=MatA(:,2); 06/17 15:58
5F:→ name0625: MatB=[[1:max(MatA(:,1))]' , MatB]; 06/17 15:58
6F:→ MrsJ: 谢谢 我试试.. 06/17 16:12
7F:推 sunev: 如果MatA及Matb的第一个column只是流水号,且为正整数的话 06/17 16:59
8F:→ sunev: MatB=zeros(max(MatA(:,1)),2); 06/17 17:00
9F:→ celestialgod: s大要出声了 06/17 17:00
10F:→ sunev: MatB(MatA(:,1),2)=MatA(:,2); 06/17 17:01
11F:推 name0625: 太强啦!我妈问我为什麽要跪着看手机! 06/17 19:41