2017-04-18 16 views
0

私はmatlabには新しく、難しいです:関数のグラフをプロットしたいと思います。 'r'は放物線方程式とvalueof 'y' 「k」に追加中にエラーが表示されます。 コードは `すべてがクリアです。matlabにグラフをプロットする(行列の寸法は一致している必要があります)

x=[3,4,5,6,7,8,9,10,11,10,13,14,15,16,17,18,19,20,21,22,23]; 
a=(8.854.*(10.^-12).*(0.016)); 
y=-0.0925:0.01:0.0925 
z=(0.03); 
r=((7.3.*(y).^2)+(z)); 
k=((x.*10^-2))+((r)) 
c=(a./k); 
plot(x,c); 

とコマンドウィンドウにエラーが、私はこの問題を回避することができますどのように

Error using + 
matrix dimensions must agree. 
error in program(line 8) 
k=((x.*10^-2))+((r)) 

のですか?

+0

: は、変更xまたはよりよい解決策のいずれかのように、linspaceを使用することです異なるサイズの2つのベクトルを追加します。これは定義されていません。 – user2999345

+0

'k'が' x'と 'y'のすべての順列に対して計算されるように' k'を2Dにしますか? – Suever

+0

'x'は' 1x21'で 'r'は' 1x19'です。だから、 '(x。* 10^-2)+((r))'はどのように起こると思いますか? –

答えて

0

コメントに人が指摘しているように、マトリックスの寸法が問題です。あなたのコメントから

x=3:21; 
a=(8.854.*(10.^-12).*(0.016)); 
y=-0.0925:0.01:0.0925 
z=(0.03); 
r=((7.3.*(y).^2)+(z)); 
k=((x.*10^-2))+((r)) 
c=(a./k); 
plot(x,c); 
0

:あなたはy(すなわち、1x19)とx同じ寸法を作る場合は、下図のように、あなたが望むように聞こえるものですグラフを生成しますあなたはそれをしたい場合xrのすべてのペアに対して2つの値、すなわちkの値がある場合は、Matlab 2016a +にはk=((x.*10^-2))+((r).')、つまりもう1つの転置が必要です。前の2016年には、このためにarrayfun使用します。

[xr,rx] = meshgrid(x,r); 
k = arrayfun(@(x,r) ((x.*10^-2))+((r)),xr,rx); 

をところで、あなたはプロットが、imagescを使用することはありません2-Dイメージをプロットします。

Image of your variable kImage of your variable c

まず:あなたの変数k、第二:あなたの変数cこれは、それがどのように見えるかです。これはあなたが探していたものですか?

0

Matlabとコメントで指摘されているように、問題は確かにベクトルのサイズの違いです。用語 'kは=((X * 10^-2))+((R)) `あなたに

y=linspace(-0.925,0.0915,21); 
関連する問題