3次元グラフの作成

4 次查看(过去 30 天)
N/A
N/A 2018-5-29
编辑: michio 2018-5-29
下記に示すようなプログラムを書き、x軸がx、y軸がy、z軸がQ1の3次元グラフを作成しようとしましたが、「エラー: plot3 ベクトルは同じ長さでなければなりません。エラー: sample (line 73)plot3(e1,e2,Q1);」というような内容のエラーが表示されました。どのように修正すれば、3次元グラフを作成できますか? Q1を求める計算式は正しいものとします。
A=19.6*10^-6;%受光面積
n=1.49;%屈折率
k=deg2rad(62.5);%LEDの半値角
m=-log(2)/log(cos(k));
Pt=0.764;%TXパワー
R=0.24;%受光感度
kb=1.38*10^(-23);%ボルツマン定数
T=300;%絶対温度
F=1;%雑音指数
BR=10*10^6;%RXの帯域幅
RL=510;%フィードバック抵抗
q=1.602*10^(-19);%電子電荷
Id=120*10^(-12);%暗電流
I0=0;%スペース時の電流
wx=5;
wy=5;
fov=25;
H=1.5;
oR=50;%フォトダイオードのなす角度
OR=deg2rad(oR);
t=deg2rad(0);%TXの傾き角
i=1;
j=1;
for x=0:0.1:wx
e1(i)=x;
for y=0:0.1:wy
e2(j)=y;
H1=sqrt((wx/2-x)^2+y^2+H^2);%TX1とRXユニット間の距離
cost11=H/H1;%cos(ΦT)
t11=acos(cost11);%ΦT
rad2t11=rad2deg(t11);
cosr11=(y*sin(OR)+H*cos(OR))/H1;%cos(ΦR)
r11=acos(cosr11);%ΦR
rad2r11=rad2deg(r11);%ラジアンを度に変換する
if rad2r11<=fov
h11=((m+1)*A*(cost11^m)*(n^2)*cosr11)/(sin(deg2rad(fov))*sin(deg2rad(fov))*2*3.14*power(H1,2));
P11=Pt*h11;
elseif rad2r11>fov
h11=0;
P11=Pt*h11;
end
cosr12=((wx/2-x)*sin(OR)+H*cos(OR))/H1;%cos(ΦR)
r12=acos(cosr12);%ΦR
rad2r12=rad2deg(r12);%ラジアンを度に変換する
if rad2r12<=fov
h12=((m+1)*A*(cost11^m)*(n^2)*cosr12)/(sin(deg2rad(fov))*sin(deg2rad(fov))*2*3.14*power(H1,2));
P12=Pt*h12;
elseif rad2r12>fov
h12=0;
P12=Pt*h12;
end
P1=P11+P12;
I1=R*P1;
N1=(4*kb*T*F*BR)/RL+2*q*(I1+Id)*BR;
N0=(4*kb*T*F*BR)/RL+2*q*Id*BR;
Q1(i,j)=(I1-I0)/(sqrt(N1)+sqrt(N0));
BER1=0.5*erfc(Q1/sqrt(2));
j=j+1;
end
i=i+1;
end
plot3(e1,e2,Q1);

采纳的回答

Akira Agata
Akira Agata 2018-5-29
plot3(e1,e2,Q1) を実行するには、エラーメッセージにあるように、e1, e2, Q1 を同じサイズの1次元配列にする必要があります。とりいそぎ、以下2点の修正でプロットできることを確認しました(ちなみに以下はあくまで応急処置ですので、e1, e2, Q1の事前割り当てやベクトル化などもご検討下さい)。
e1(i)=x; を、 y に対するforループの中に e1(j)=x; として入れる
② Q1 が2次元配列にならないよう、 Q1(j)=(I1-I0)/(sqrt(N1)+sqrt(N0)); に修正する
これでe1, e2, Q1 を同じサイズの1次元配列にすることができます。あとは見やすさを考慮して以下のようにプロット部分を修正のうえ実行してみました。
plot3(e1,e2,Q1,'.');
grid on
xlabel('x','FontSize',14)
ylabel('y','FontSize',14)
zlabel('Q1','FontSize',14)
  1 个评论
N/A
N/A 2018-5-29
ありがとうございました。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 ライン プロット 的更多信息

产品


版本

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!