我有一个坐标矩阵,如[x1 y1 z1; x2 y2 z2; ... xn yn zn]
目前,这些坐标是手动输入的,但是,我只想输入x1
,y1
,z1
并通过for循环计算其他点:
x1=7
,y1=-x^2
,z1=tanx
并通过将x1
减1(例如6,5,4等等)来计算其他点,并通过此计算另一个{ {1}},x2
,y2
等等,最终生成数组z2
。
编辑1:
如果我希望参数中的[x1 y1 z1; x2 y2 z2; ... xn yn zn]
等式为x,y,z
,x1=7
,y1=-x^2
?
我的代码:
z1=tanx
答案 0 :(得分:0)
您可以使用anonymous functions。首先,创建你的功能,如下所示:
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