作者: 
tomichy (tomichy)   
2016-06-17 21:01:09※ 引述《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 中
: 想嘗試使用再加一個迴圈來執行這個要求 ... 我不幸卡住。