[英]Calculating matrix points from input Matlab
我有一個坐標矩陣,例如[x1 y1 z1; x2 y2 z2; ... xn yn zn]
[x1 y1 z1; x2 y2 z2; ... xn yn zn]
[x1 y1 z1; x2 y2 z2; ... xn yn zn]
。
當前,這些坐標是手動輸入的,但是,我只想輸入x1
, y1
, z1
並通過for循環,很好地計算其他點:
x1=7
, y1=-x^2
, z1=tanx
,它通過將x1
減1(例如z1=tanx
等)並通過計算其他x2
, y2
, z2
等來計算其他y2
,最后得到數組[x1 y1 z1; x2 y2 z2; ... xn yn zn]
[x1 y1 z1; x2 y2 z2; ... xn yn zn]
[x1 y1 z1; x2 y2 z2; ... xn yn zn]
。
編輯1:
如果我希望參數中的x,y,z
方程為x1=7
, y1=-x^2
, z1=tanx
?
我的代碼:
function funC(x1,y1,z1)
x=7;
y=-x^2;
z=tanx;
for ii=1:7
array = [x-1 y z];
%not showing correct result
end
您可以使用匿名函數 。 首先,創建您的函數,如下所示:
function array = funC(x1, y1, z1)
x = (x1:-1:1).';
array = [x y1(x) z1(x)];
end
然后,這樣稱呼它:
% Define x1
>> x1 = 7
% Define y1 and z1 as anonymous functions
>> y1 = @(x) -x.^2;
>> z1 = @(x) tan(x);
% Call your function
>> funC(x1,y1,z1)
ans =
7.0000 -49.0000 0.8714
6.0000 -36.0000 -0.2910
5.0000 -25.0000 -3.3805
4.0000 -16.0000 1.1578
3.0000 -9.0000 -0.1425
2.0000 -4.0000 -2.1850
1.0000 -1.0000 1.5574
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.