[問題] 向量內元素相乘問題已回收

看板MATLAB作者 (benefit)時間16年前 (2009/03/23 03:55), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
假設已知一個向量 A=[a,b,c,d] 然後我想產生另一個向量 B,其中 B(1)=(a-b)*(a-c)*(a-d) B(2)=(b-a)*(b-c)*(b-d) B(3)=(c-a)*(c-b)*(c-d) B(4)=(d-a)*(d-b)*(d-c) 目前想到的是 for ct1=1:length(A) C=A; C(ct1)=[]; for ct2=1:length(C) D(ct2)=A(ct1)-C(ct2); end B(ct1)=prod(D); end 有其他比較簡潔的方法嗎 希望能有人解答一下,謝謝了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.248.37 ※ 編輯: soi740606 來自: 118.160.248.37 (03/23 04:50)

03/23 08:50, , 1F
D=bsxfun(@minus,A,A'); n=length(A);
03/23 08:50, 1F

03/23 08:51, , 2F
D(1:n+1:n^2)=[];D=reshape(D,n-1,n);B=prod(D);
03/23 08:51, 2F

03/23 14:09, , 3F
謝謝 我試看看
03/23 14:09, 3F
文章代碼(AID): #19nfUi4n (MATLAB)
文章代碼(AID): #19nfUi4n (MATLAB)