看板 MATLAB 關於我們 聯絡資訊
Siz = size(A); AA = nan(Siz(1)+1, Siz(2)); AA(1:m-1, :)= A(1:m-1, :); AA(m, :) = [mx, my]; AA(m+1:end, :) = A(m:end, :); A = AA; ※ 引述《Willful1 (自強不息!!)》之銘言: : 延伸原po的問題 : 原本是想加入一列,使其成為第3列,使得A矩陣由三列變為四列 : 若改為想加入一列(mx,my),使其成為第m列,m = 1~4 任意一數字、(mx,my)也是變數 : 請問該如何製作這樣的變數組合呢? : 謝謝大家 : ※ 引述《candy88257 (阿泰斯)》之銘言: : : 如: : : A=[1,2;3,4;7,8]; : : 想在中間加一列變成: : : A=[1,2;3,4;5,6;7,8]; : : 請問這樣要怎麼做? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 24.21.33.212
Willful1:感謝回覆,但AA顯示的結果都是NaN;請問可以做成函數 02/09 14:34
Willful1:形式,像是AA=B(m,mx,my)這樣嗎?? 謝謝 02/09 14:35
Willful1:不好意思,後來修改一下後就可以了,感謝j大提點 02/09 14:42
Willful1:function siz(m,mx,my) 02/09 14:42
Willful1:A=[1,2;3,4;7,8]; %此行一定要在此輸入 02/09 14:43
Willful1:Siz = size(A); 02/09 14:43
Willful1:AA = nan(Siz(1)+1, Siz(2)); 02/09 14:44
Willful1:AA(1:m-1, :)= A(1:m-1, :); 02/09 14:44
Willful1:AA(m, :) = [mx, my];AA(m+1:end, :) = A(m:end, :) 02/09 14:45
Willful1:end 謝謝j大幫忙 02/09 14:46
jatj:no problem 02/09 15:09
profyang:這種我都習慣直接B=[A(1:m-1,:);[mx,my];A(m:end,:)] 耶 02/09 16:53
profyang:請問這樣是會在矩陣比較大的時候比j大你這樣先宣告它的 02/09 16:54
profyang:size還慢嗎?@@ 02/09 16:54
profyang:另外W大你想寫成函數應該是要把A當input然後AA當output吧 02/09 17:01
profyang:那第一行應該改成function [AA]=siz(A,m,mx,my)這樣吧 02/09 17:02
profyang:然後A則是要在function外面去定義 02/09 17:02
Willful1:這也是奇怪之處,A在函數外做好定義後,函數卻讀不到A 02/09 17:40
profyang:因為你沒把A放進input裡面阿@@ 要像我上面那樣 02/09 18:24
Willful1:XDD" 對耶,不好意思沒注意到... 感謝p大唷 :) 02/09 18:57
jatj:p這樣應該也一樣的速度 只是又更簡單了點 02/10 09:34
profyang:了解 因為我是好像有看過有的case先宣告他size會比較好 02/10 12:32
jatj:如果矩陣大我會先宣告空間 不過一行的話應該就不用(不確定) 02/10 12:53