作业帮 > 综合 > 作业

我用MATLAB绘图时,横坐标为X=[1,.,100],每个X(i)对应的Y(i)类似于[2;3],程序如下:

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 15:07:15
我用MATLAB绘图时,横坐标为X=[1,.,100],每个X(i)对应的Y(i)类似于[2;3],程序如下:
初学者向各位大侠请教,程序说明,先求出每个X(i)对应的Y(i),存起来,再绘图:
e1=1/sqrt(2).*[sqrt(0.5),sqrt(1.5);-sqrt(0.5),sqrt(1.5)]*[-0.4326;-1.6656];
e2=e1+[0.875;0];
c(1)=[-1;-1];
a(1)=[1;1];
t=[0;0];
B=[1,0;0,1];
Y=zeros(1,100);
for i=1:20
y(i)=a(i)+B*c(i)+e1;
a(i+1)=0.1.*(y(i)-B*c(i))+0.9.*a(i);
c(i+1)=B*(t-a(i+1));
Y(1,i)=y(i)
end
for i=21:100
y(i)=a(i)+B*c(i)+e2;
a(i+1)=0.1.*(y(i)-B*c(i))+0.9.*a(i);
c(i+1)=B*(t-a(i));
Y(1,i)=y(i)
end
X=1:100;
plot(X,Y);
grid on;
老出现?In an assignment A(I) = B,the number of elements in B and
I must be the same.的错误.
你的维数越界了,一维变量不能存储二维数组,你必须把数组维数升级,或者用元胞,我帮你把数组升维了,运行出来结果应该是二维的Y,所以画出来是会有两条线,当然你可以分开画,好看清哪条对应什么.具体程序如下:
clear;
clc;
e1=1/sqrt(2).*[sqrt(0.5),sqrt(1.5);-sqrt(0.5),sqrt(1.5)]*[-0.4326;-1.6656];
e2=e1+[0.875;0];
c(:,1)=[-1;-1];
a(:,1)=[1;1];
t=[0;0];
B=[1,0;0,1];
Y=zeros(1,100);
for i=1:20
y(:,i)=a(:,i)+B*c(:,i)+e1;
a(:,i+1)=0.1.*(y(:,i)-B*c(:,i))+0.9.*a(:,i);
c(:,i+1)=B*(t-a(:,i+1));
%Y(1,i)=y(i)
end
for i=21:100
y(:,i)=a(:,i)+B*c(:,i)+e2;
a(:,i+1)=0.1.*(y(:,i)-B*c(:,i))+0.9.*a(:,i);
c(:,i+1)=B*(t-a(:,i));
%Y(1,i)=y(i)
end
Y = y;
X=1:100;
plot(X,Y);
grid on
为避免被拉去审核,就不贴图了,自己运行吧
有问题欢迎追问,
copyright@cxd1301
再问: 谢谢您的帮助,运行程序没有问题,可是图跑出来好像不对,也许是我的N生成错了:N be a 2*1 vector of independent standard normal deviates(N~(0 I),0和I都是黑体),generating 2 random standard normal deviates as the elements of vector N。用matlab咋生成N 啊?我用的是normrnd,可运行出来不对啊。也就是上面的百分号内的数组e1=1/sqrt(2).*[sqrt(0.5),sqrt(1.5);-sqrt(0.5),sqrt(1.5)]*%[-0.4326;-1.6656];%
再答: 不明白你到底要干嘛,问问题前最好自己先分析清楚你的需求是什么,什么问题没有解决。帮你的不可能帮你看每个那么长的程序是做啥的。只能帮你解决存在的问题。 估计你是要产生标准正态分布,可以自己help randn