关于MATLAB的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:33:33
在编程序时
如:cos(x)*cos(y)
x,y都是变量,比如说是关于t 的变量吧
我在实现t=O:0.01:2时,就出不来,说是*的有问题,这是为什么呀??
有神什么解决方法么??
function y=jiasudu(t)
o=350;n=230;z1=15;z2=55;k=1.65;h=500;
l= h/(2*sin(pi*(k-1)/((k+1)*2)));
l3=o*sin(pi*(k-1)/((k+1)*2));
w=pi*2*n*z1/(60*z2);
l1=sqrt(o*o+l3*l3+2*o*l3*sin(w*t));
m=l3*cos(w*t)./(o+l3*sin(w*t));
if (m>0 )
j=atan(m);
else
j=pi+atan(m);
end
w1=w*l3*sin(w*t+j)/l1;
v1=w*l3*cos(w*t+j);
y=-((w*w*l3*cos(w*t+j)-2*w1*v1)*cos(j)*l/l1+w1*w1*l*sin(j));
end
像这样一个程序,应该怎么改呀??
谢了

乘号前面加个点就行了,同阶矩阵对应元素的乘除和乘方,要带点的.* , ./和.^

t=0:0.01:2;
x=t+1;
y=t*3;
cos(x).*cos(y)

实现如下:
t=0:0.01:2;
x=t+1; %假设
y=t.^2 %假设
cos(x)*cos(y') %要转置

答案:
ans = 52.2051

如果t=0:0.01:2,那么t就是一个1行200列的行向量,由于x和y都是关于t的变量,那么x和y也是一个行向量,两个行向量是无法相乘的,必须把后面那个y转变为一个列向量才行。

用点乘