matlab中出现??? In an assignment A(I) = B, the number of elements...
发布网友
发布时间:2024-04-17 20:59
我来回答
共3个回答
热心网友
时间:2024-04-20 14:23
不明白你最后的plot是什么目的,肯定是画不出东西的,不过你提出的错误主要由于这里: T2(g)=[1 0;0 exp(1i*Phi(g))]; T2若是一个矩阵,就不能加(g)成为集合的集合,何况T2、A只是作为中间变量,没有必要带序号。完全可以用中间变量代替,全码小改动:
clear;
R=5;
Z=2*pi*R;
Lambda=300;
c=3*10^8;
Omega=1:10;
l=length(Omega);
for g=1:l %length(Omega)
x=4*pi*R*Z*Omega(g)/(Lambda*c); %Phi(g)=4*pi*R*Z*Omega(g)/(Lambda*c);
y=exp(1i*x);
T1=[sqrt(1/2) 1i*sqrt(1/2);1i*sqrt(1/2) sqrt(1/2)];
T2=[1 0;0 y]; %T2(g)=[1 0;0 exp(1i*Phi(g))];
B=[1;0];
A=T1*T2*T1*B; % A(g)=T1*T2(g)*T1*B;
E1=A(1,1);
E2=A(2,1);
P1=E1^2;
P2=E2^2;
end
plot(Lambda,P1,Lambda,P2);
title('角速度与输出功率的关系');
xlabel('角速度');
ylabel('输出功率');
%%最后plot命令不是这么用,也不明白你的意思,还要在改动才能画出你要的东西。问题解决。
热心网友
时间:2024-04-20 14:32
你是中南材料的??
热心网友
时间:2024-04-20 14:28
clear;
R=5;
Z=2*pi*R;
Lambda=300;
c=3*10^8;
Omega=1:10;
l=length(Omega);
for g=1:l %length(Omega)
x=4*pi*R*Z*Omega(g)/(Lambda*c); %Phi(g)=4*pi*R*Z*Omega(g)/(Lambda*c);
y=exp(1i*x);
T1=[sqrt(1/2) 1i*sqrt(1/2);1i*sqrt(1/2) sqrt(1/2)];
T2=[1 0;0 y]; %T2(g)=[1 0;0 exp(1i*Phi(g))];
B=[1;0];
A=T1*T2*T1*B; % A(g)=T1*T2(g)*T1*B;
E1=A(1,1);
E2=A(2,1);
P1=E1^2;
P2=E2^2;
end
plot(Lambda,P1,Lambda,P2);
title('角速度与输出功率的关系');
xlabel('角速度');
ylabel('输出功率');