[問題] 矩陣運算已回收

看板MATLAB作者 (東東一出誰與丹丹)時間13年前 (2011/04/07 18:09), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串5/7 (看更多)
輸入變數 t,p 輸出變數 x;y;z 函數output(t,p)=cos(t)*sin(p) 以上三項沒有特別意義 程式主要用來看for迴圈和矩陣運算的時間差異 所以輸出之 x;y;z 是一樣的東西 clear,close all;clc; n=500; t=rand(1,n*2)*100; p=rand(1,n)*100; tic for s1=1:length(t) for s2=1:length(p) x(s2,s1)=cos(t(s1)).*sin(p(s2)); end end toc tic for s=1:length(p) y(s,:)=cos(t).*sin(p(s)); end toc tic z=(cos(t)'*sin(p))'; toc 問題在於如果我想要把函數延展到三個輸入變數 即: output(t,p,r)=cos(t)*sin(p)*tan(r) r為任意一維矩陣 如:r=rand(1,n*3)*100 時 我的矩陣運算寫法應該要怎麼寫? 請板友們幫忙解惑m(_ _)m 除此之外我知道可以利用ndgrid [T,P]=ndgrid(t,p); output(t,p)=cos(T).*sin(P); 用這方法可以輕易將輸入變數增加至很多個 但如何增加變數數目不是我的問題 而是增加變數數目後我的矩陣運算該怎麼寫 感謝收看! ※ 編輯: DuoMax 來自: 140.115.120.39 (04/07 18:40)

04/08 23:08, , 1F
飛彈系統 就給他用多維矩陣 PAGE BOX
04/08 23:08, 1F
文章代碼(AID): #1DdOrnD7 (MATLAB)
文章代碼(AID): #1DdOrnD7 (MATLAB)