[问题] 矩阵元素的重新分配疑问 ?

楼主: MrsJ (MrsJ)   2016-06-17 15:32:56
各位先进好 自修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 中
想尝试使用再加一个循环来执行这个要求 ... 我不幸卡住。
作者: name0625 (lawpy)   2016-06-17 15:50:00
MatA的第一个column都是整数吗?如果是的话,不知道这样符不符合你的需求↓MatB=zeros(max(MatA(:,1)),1);MatB(MatA(:,1))=MatA(:,2);MatB=[[1:max(MatA(:,1))]' , MatB];
楼主: MrsJ (MrsJ)   2016-06-17 16:12:00
谢谢 我试试..
作者: sunev (Veritas)   2016-06-17 16:59:00
如果MatA及Matb的第一个column只是流水号,且为正整数的话MatB=zeros(max(MatA(:,1)),2);
作者: celestialgod (天)   2016-06-17 17:00:00
s大要出声了
作者: sunev (Veritas)   2016-06-17 17:01:00
MatB(MatA(:,1),2)=MatA(:,2);
作者: name0625 (lawpy)   2016-06-17 19:41:00
太强啦!我妈问我为什么要跪着看手机!

Links booklink

Contact Us: admin [ a t ] ucptt.com