作者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://www.ptt.cc/bbs/MATLAB/M.1466148780.A.532.html
→ name0625: MatA的第一個column都是整數嗎? 06/17 15:50
→ name0625: 如果是的話,不知道這樣符不符合你的需求↓ 06/17 15:57
→ name0625: MatB=zeros(max(MatA(:,1)),1); 06/17 15:58
→ name0625: MatB(MatA(:,1))=MatA(:,2); 06/17 15:58
→ name0625: MatB=[[1:max(MatA(:,1))]' , MatB]; 06/17 15:58
→ MrsJ: 謝謝 我試試.. 06/17 16:12
推 sunev: 如果MatA及Matb的第一個column只是流水號,且為正整數的話 06/17 16:59
→ sunev: MatB=zeros(max(MatA(:,1)),2); 06/17 17:00
→ celestialgod: s大要出聲了 06/17 17:00
→ sunev: MatB(MatA(:,1),2)=MatA(:,2); 06/17 17:01
推 name0625: 太強啦!我媽問我為什麼要跪著看手機! 06/17 19:41