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

看板MATLAB作者 (MrsJ)時間9年前 (2016/06/17 15:33), 編輯推噓2(209)
留言11則, 4人參與, 最新討論串1/3 (看更多)
各位先進好 自修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

06/17 15:50, , 1F
MatA的第一個column都是整數嗎?
06/17 15:50, 1F

06/17 15:57, , 2F
如果是的話,不知道這樣符不符合你的需求↓
06/17 15:57, 2F

06/17 15:58, , 3F
MatB=zeros(max(MatA(:,1)),1);
06/17 15:58, 3F

06/17 15:58, , 4F
MatB(MatA(:,1))=MatA(:,2);
06/17 15:58, 4F

06/17 15:58, , 5F
MatB=[[1:max(MatA(:,1))]' , MatB];
06/17 15:58, 5F

06/17 16:12, , 6F
謝謝 我試試..
06/17 16:12, 6F

06/17 16:59, , 7F
如果MatA及Matb的第一個column只是流水號,且為正整數的話
06/17 16:59, 7F

06/17 17:00, , 8F
MatB=zeros(max(MatA(:,1)),2);
06/17 17:00, 8F

06/17 17:00, , 9F
s大要出聲了
06/17 17:00, 9F

06/17 17:01, , 10F
MatB(MatA(:,1),2)=MatA(:,2);
06/17 17:01, 10F

06/17 19:41, , 11F
太強啦!我媽問我為什麼要跪著看手機!
06/17 19:41, 11F
文章代碼(AID): #1NOwUiKo (MATLAB)
文章代碼(AID): #1NOwUiKo (MATLAB)