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

看板MATLAB作者 (tomichy)時間8年前 (2016/06/17 21:01), 編輯推噓0(004)
留言4則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《MrsJ (MrsJ)》之銘言: 試例如下: 如不用迴圈 還能更簡化嗎? clear all;clc; matA=[[3,5,8,10,14];sqrt([4,7,11,18,35])]' [mx my]=size(matA); matB=[[1:20]' zeros(size([1:20]'))]; for i=1:mx matB(matA(i,1),2)=matA(i,2); end matB : 各位先進好 自修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), 來自: 123.195.38.148 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1466168475.A.014.html

06/17 21:04, , 1F
我不是回了一個不用迴圈的方法嗎...
06/17 21:04, 1F

06/18 01:55, , 2F
好像也沒人回要迴圈的方法0.0
06/18 01:55, 2F

06/18 12:32, , 3F
喔 是啊 ismember
06/18 12:32, 3F

06/18 14:19, , 4F
因為迴圈慢
06/18 14:19, 4F
文章代碼(AID): #1NO_IR0K (MATLAB)
文章代碼(AID): #1NO_IR0K (MATLAB)