[討論] 想請教一下各位已回收

看板MATLAB作者 (回憶裡的微笑)時間14年前 (2011/05/18 22:29), 編輯推噓3(3016)
留言19則, 6人參與, 最新討論串1/1
舉個例: I=[5 6 9 2]; L=[3 2 5 7 4 2 8 7 5 0 1 2 ]; 請問一下要如何才可以 K=I-L 出現一個3*4矩陣而不會出現維度的問題 K= [2 4 4 -5 1 4 1 -5 0 6 8 0 ] 不希望用到迴圈 想問看看有沒有直接減的方法 -- 宅化四徵兆 :XDDDD~ 您的包裹 喂~學妹電腦壞了 原來我沒朋友... 你去修一下 <○> └□ □=□郵 ○>  ̄ ̄ |\ ︽□ 醒來就開機 網購真便利 不會想出去 交際等於零ψQSWEET -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.108.22 ※ 編輯: clarence7831 來自: 114.44.108.22 (05/18 22:40)

05/18 23:19, , 1F
矩陣內元素對元素運算的話維度一定要相等!試試下面的做法
05/18 23:19, 1F

05/18 23:22, , 2F
I=ones(3,1)*I;K=I-J;
05/18 23:22, 2F

05/18 23:29, , 3F
我自己想到一個方法 [I(1,1)-L(:,1),I(1,2)-L(:,2),I
05/18 23:29, 3F

05/18 23:30, , 4F
(1,3)-L(:,3),I(1,4)-L(:,4)] 不過好醜
05/18 23:30, 4F

05/18 23:31, , 5F
K=[I;zeros(size(L,1)-size(I,1),size(I,2))]-L
05/18 23:31, 5F

05/18 23:33, , 6F
利用size計算矩陣大小,再用zeros用零補足不夠的矩陣
05/18 23:33, 6F

05/18 23:36, , 7F
打錯了 ...抱歉
05/18 23:36, 7F

05/18 23:42, , 8F
建議原PO用我提供的方式不然矩陣維度大的話會很難寫
05/18 23:42, 8F

05/18 23:42, , 9F
更正 K=[I;I;I]-L ;這個只適用3x4的;
05/18 23:42, 9F

05/18 23:53, , 10F
我有可能會用到100*4或更多row的矩陣ˊˋ
05/18 23:53, 10F

05/18 23:55, , 11F
決定用v大的方式 只是這樣就要再生一個變數 因為我
05/18 23:55, 11F

05/18 23:56, , 12F
不希望改到I ^^
05/18 23:56, 12F
※ 編輯: clarence7831 來自: 114.44.108.22 (05/18 23:57)

05/19 00:00, , 13F
不需要多一個變數阿,K=ones(n,1)*I-J,n是I的row數
05/19 00:00, 13F

05/19 00:09, , 14F
抱歉說錯了n是J的row數才對
05/19 00:09, 14F

05/19 00:14, , 15F
K=bsxfun(@plus,I,-L);
05/19 00:14, 15F

05/19 04:46, , 16F
i=[i;i;i];k=i-l;
05/19 04:46, 16F

05/19 15:47, , 17F
感謝各位~~~
05/19 15:47, 17F

05/19 15:54, , 18F
謝謝s大的新招
05/19 15:54, 18F

05/20 20:05, , 19F
就實測速度來說,還是v大的指令速度是最快的
05/20 20:05, 19F
文章代碼(AID): #1DqzV5x3 (MATLAB)