У меня есть код в Matlab, который принимает два входных значения в указанном диапазоне и выводит три значения.
Пример:% расчета углов для механизма параллельного сцепления
% Расчет углов для механизма параллельного сцепления
l1 = 280;
l2 = 102;
l3 = 304;
c1 = 102;
c2 = 280;
prompt1 = 'X-coordinate :'; % Upper motor rotation coordinate
x = input (prompt1);
prompt1 = 'Y-coordinate :'; % Base motor rotation coordinate
y = input (prompt1);
z = -95.2;
y4 = 2320-y;
x1 = x-544.84;
y2 = y4 + 217.5;
p = atand ((x1/y2));
y3 = (y2/(cosd(p)));
y1 = y3 - 53.12;
z1 = z + 55.5;
if z1>0;
h = (((y1^2)+(z1^2))^(0.5));
u = acosd ((-(h^2)+((l1^2)+(l3^2)))/(2*l1*l3));
r = (180-u);
d = (((l1^2)+(l2^2)-(2*l1*l2*cosd(r)))^0.5);
t1 = acosd (((l1^2)-(l2^2)+(d^2))/(2*l1*d));
b1 = acosd (((l2^2)-(l1^2)+(d^2))/(2*d*l2));
a = acosd (((c1^2)+(c2^2)-(d^2))/(2*c1*c2));
t2 = acosd (((c1^2)-(c2^2)+(d^2))/(2*c1*d));
b2 = acosd (((c2^2)-(c1^2)+(d^2))/(2*c2*d));
i1 = acosd ((y1)/(h));
i2 = acosd (((l1^2)-(l3^2)+(h^2))/(2*l1*h));
M1 = ((i1+i2));
% Total angle between both motor driven links
t = t1+t2;
i3 = (180-i1-i2-t);
M2 = (i3);
else
z2 = -z1;
h = (((y1^2)+(z2^2))^(0.5));
r2 = atand (z2/y1);
u = acosd ((-(h^2)+((l1^2)+(l3^2)))/(2*l1*l3));
r = (180-u);
d = (((l1^2)+(l2^2)-(2*l1*l2*cosd(r)))^0.5);
t1 = acosd (((l1^2)-(l2^2)+(d^2))/(2*l1*d));
b1 = acosd (((l2^2)-(l1^2)+(d^2))/(2*d*l2));
a = acosd (((c1^2)+(c2^2)-(d^2))/(2*c1*c2));
t2 = acosd (((c1^2)-(c2^2)+(d^2))/(2*c1*d));
b2 = acosd (((c2^2)-(c1^2)+(d^2))/(2*c2*d));
t = t1+t2;
r1 = acosd (((h^2)+(l1^2)-(l3^2))/(2*l1*h));
M1 = (r1-r2);
i3 = (180-M1-t);
M2 = i3;
end
clc;
Мои входные значения - это координаты x и y, а выходные данные - M1, M2 и p. Я хочу создать такой же лист Excel для входного диапазона значений x от 1 до 555 с шагом 1 и для значений y в диапазоне от 2000 до 2200 с шагом 1.
Любая помощь приветствуется, так как я новичок в MATLAB,
Заранее спасибо.