[問題] 矩陣元素的重新分配疑問 ?

作者: 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