[問題] 矩陣運算已回收
輸入變數 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
04/08 23:08, 1F
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章