contour plot getting error

Hello,
I am trying to get two contour plots with my date below, and I'm getting error for the second one, I really appreciate your help to guide me,
clear all
close all
clc
[m,a]=meshgrid(0:1/11:1,0:5000:50000)
v=m.*a
[C,h]=contour(m,a,v);
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2);
colormap cool
%U=q/M^2
U=[1481.354 1232.613 1018.924 836.3533 681.2936 550.4372 440.7684 349.5441 275.1887 216.6139 170.5264]
KIAS=661*((U)*m.^2/1481).^(1/2)
figure
[A,B]=contour(m,a,KIAS);
set(B,'ShowText','on','TextStep',get(B,'LevelStep')*2);
colormap cool

2 个评论

What error are you getting?
Error using contour (line 72) Z must be size 2x2 or greater.
Error in MAE325_HW2 (line 16) contour(m,a,KIAS);

请先登录,再进行评论。

 采纳的回答

Walter Roberson
Walter Roberson 2013-9-3

0 个投票

Your KIAS comes out as 1 x 12. When you have a vector as the third argument of contour() then the vector is treated as the list of contour levels, not as Z.
After that, the contour() error checking gets confused about what exactly is wrong: the real problem it should be diagnosing at that point is that you would have provided only two coordinate matrices (X, Y) instead of one (Z) or three (X, Y, Z).
Remember, U is a row vector, so it is 1 x something, and when you do an algebraic matrix multiplication (1 x something) x matrix, then the result is going to be 1 x some dimension, rather than a rectangle.
You might perhaps be wanting to do some repmat() somewhere along the line. And maybe a transpose or three. I can't tell.

6 个评论

thanks, I tired a couple of times using repmat and transpose, but I can't get this to work, can you please take a give it a try tell me what am I doing wrong? thanks!
You need to indicate what mathematical result you want. You have currently have U*m where U is a 1 x 11 row vector and m is a 11 x 12 array. The result is going to be 1 x 12 for KIAS. But to be useful for that contour() call, you need a 11 x 12 KIAS (same size as m). You could repmat(U, 11, 1) so that U become 11 x 11 and so U*m becaome 11 x 12, but would that be what you want mathematically? The result would be the same as if you had repmat(KIAS,11,1) with your current KIAS definition -- which clearly would not give you nice contours.
This is why we need to know mathematically what you expect for each KIES entry.
I changed my code to this : I get a graph but it doesn't look right,
clear all
close all
clc<<<<>>>>
[m,a]=meshgrid(0:1/11:1,0:5000:50000)
v=m.*a
[C,h]=contour(m,a,v);
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2);
colormap cool
%U=q/M^2
U=[1481.354 1232.613 1018.924 836.3533 681.2936 550.4372 440.7684 349.5441 275.1887 216.6139 170.5264];
%u=repmat(U,11);
KIAS=661*(U*m.^2/1481).^(1/2);
KIAS=[KIAS;KIAS;KIAS;KIAS;KIAS;KIAS;KIAS;KIAS;KIAS;KIAS;KIAS]
figure
[A,B]=contour(m,a,KIAS);
set(B,'ShowText','on','TextStep',get(B,'LevelStep')*2);
colormap cool
Salar
Salar 2013-9-4
编辑:Walter Roberson 2013-9-4
I have apicture of the ideal graph which is generated by Excel, it is attached here, I need this graph to be like this,
As I wrote above,
The result would be the same as if you had repmat(KIAS,11,1) with your current KIAS definition -- which clearly would not give you nice contours.
Which is also why I wrote,
This is why we need to know mathematically what you expect for each KIAS entry.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Contour Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by