我正在解决一个数学问题,我无法继续解决该错误。
我用sin^2(x)
尝试了所有常量,但还是一样。
清除 clc
t = 1:0.5:10;
theta = linspace(0,pi,19);
x = 2*sin(theta)
y = sin^2*(theta)*(t/4)
使用sin时出错 输入参数不足。
lab2t114中的错误(第9行) y = sin ^ 2 *θ(t / 4)
答案 0 :(得分:1)
sin
是一个函数,因此应将其称为sin(value)
,在这种情况下为sin(theta)
,可能有助于考虑在中间步骤中编写所有内容:
temp = sin(theta);
y = temp.^2 ...
完成此操作后,您始终可以将先前计算的行插入到下一行,并插入括号以确保操作顺序不会弄乱事情。请注意,在这种情况下,您实际上并不需要括号。
y = (sin(theta)).^2;
最后,Matlab具有按矩阵和按元素的运算。元素明智的操作以句点“。”开始。在Matlab中,您可以查看例如help .*
(元素明智的乘法)和help *
矩阵明智的计算。对于标量,例如您的示例中的2
,这种区别并不重要。但是,由于theta
和t
是向量(因此在这种情况下,您不打算进行矩阵乘法-我认为...),因此,计算y时需要元素级运算。
t = 1:0.5:10;
theta = linspace(0,pi,19);
x = 2*sin(theta) %times scalar so no .* needed
sin_theta = sin(theta);
sin_theta_squared = sin_theta.^2; %element wise squaring needed since sin_theta is a vector
t_4 = t/4; %divide by scalar, this doesn't need a period
y = sin_theta_squared.*t_4; %element wise multiplication since both variables are arrays
OR
y = sin(theta).^2.*(t/4);
还请注意,这些中间变量主要用于学习目的。最好不要编写这样的实际代码,因为在这种情况下,最后一行要干净得多。
编辑:简要说明,如果您解决了sin(theta)
错误,但没有解决。^或。*错误,则会收到诸如“使用*内部矩阵尺寸必须一致的错误”之类的错误。 ”。 -这通常表明您忘记使用按元素运算符