Matlab程序为什么运行后图像为空白

function shiya1
B=pi/6;
h=15000;
V=472.12;
s=1.94;
g=9.8;
alpha=2*pi/180;
a=340;
Ma=[1.5 2.0 2.5 3.0 3.5 4.0];
Cxx=[0.046 0.0395 0.0335 0.029 0.025 0.0225];

for i=0:0.1:2;
P=40159.35;
m=2022-219.45*i;
rou=1.225*exp(-0.000115*h);
M=V/a;
Cx=interp1(Ma,Cxx,M);
X=0.5*rou*V*V*s*Cx*alpha;
e1=(P*cos(alpha)-X-m*g*sin(B))*0.1/m;
V=V+e1;
plot(i,V,'o');
hold on;
end

B=pi/6;
h=15000;
V=472.12;
s=1.94;
g=9.8;
alpha=2*pi/180;
a=340;
Ma=[1.5 2.0 2.5 3.0 3.5 4.0];
Cxx=[0.046 0.0395 0.0335 0.029 0.025 0.0225];
%如果你的代码没问题的话,下面几行的值都是固定的,你放在循环里
%干什么,另外建议你把函数去掉,直接以脚本形式运行代码,这样会在
%工作空间显示变量的值,你就会发现你为什么画不出图了,因此变量
%根本是NAN值,怎么绘画出来

P=40159.35;
M=V/a;
rou=1.225*exp(-0.000115*h);
Cx=interp1(Ma,Cxx,M);
X=0.5*rou*V*V*s*Cx*alpha;
for i=0:0.1:2;
m=2022-219.45*i;
e1=(P*cos(alpha)-X-m*g*sin(B))*0.1/m;
V=V+e1;
plot(i,V,'o');
hold on;
end追问

你说的很对,但是循环里的不能拿出去,因为M要随循环改,而Cx也要重新插值。以脚本形式运行代码也画不出来,是哪里出问题了呢?

追答

clc
B=pi/6;
h=15000;
V=472.12;
s=1.94;
g=9.8;
alpha=2*pi/180;
a=340;
Ma=[1.5 2.0 2.5 3.0 3.5 4.0];
Cxx=[0.046 0.0395 0.0335 0.029 0.025 0.0225];
P=40159.35;
rou=1.225*exp(-0.000115*h);
for i=0:0.1:0.2
m=2022-219.45*i;
M=V/a%M第一个值为1.3886,但是Ma最小的值1.5大于他,所以
Cx=interp1(Ma,Cxx,M)%插值无法得到Cx,即Cx=NAN,所以画不出图
X=0.5*rou*V*V*s*Cx*alpha
e1=(P*cos(alpha)-X-m*g*sin(B))*0.1/m
V=V+e1
plot(i,V,'o');
hold on;
end

温馨提示:内容为网友见解,仅供参考
无其他回答

请问matlab中这个代码为什么画不出图?
在Matlab中,如果你运行了一个代码却发现无法绘出图像,这可能是由于几个原因造成的。首先,让我们来分析一个具体的例子,代码中使用了`plot`函数,并且`alpha`为一个1*31的数组,而`rs`为一个数。仅从这些信息来看,按照逻辑,代码本应该能够绘出图形。关键在于理解,`plot`函数用于绘制一条或多条...

我的MATLAB程序哪有问题,为什么出来的图片是空白的?
到这里就报错了。medfilt2的输入应该是二位矩阵图像,而b现在是三维的,也就是rgb图像 需要在它之前之前转换一下:b=rgb2gray(b);就成功了。如图:

为什么MATLAB出来图是空白的,而且Id和Vd都只有最大的值?
为什么MATLAB出来图是空白的,其原因是错误使用for语句。应该这样来写 Vg0=4:2:8;Vd0=0.1:0.1:12;for i=1:length(Vg0)for j=1:length(Vd0)。。。end end

MATLAB图片为空
你的问题出错原因有二:1、a=0.75:0.01:0.3; 这个向量组无法递减(因为步长错误为0.01),所以其步长应该为-0.01。2、a的取值范围有误,a>0.6,q1无解。所以a的向量组应该这样来写,即a=0.6:-0.01:0.3 3、按上述要求更改后,运行可以得到其图形。

MATLAB显示图片为什么是空白
img是double型的,Img是uint8型的,图片一般都是uint8型的。你把img转换为uint8型后再用imshow显示即可。imshow(uint8(img))

matlab输出程序图像空白
程序没问题,只是有些地方的标点用的中文,改过来就可以正常运行了。w=-pi:2*pi\/255: pi;wo=0.4*pi;D=10; num1=[1 3 5 7 9 11 13 15 17];L=length(num1); h1=freqz(num1,1,w);n=0:L-1; num2=exp(wo*1i*n).*num1; h2=freqz(num2,1,w); subplot(...

matlab中tif格式图像显示为一片空白,为什么
图片空白有几种情况,第一种你的语句没有图片显示,就是那个显示图片的语句不正确,第二就是覆盖了原来的,可以输入clf后,重新把语句输入一遍,如果再空白就检查语句是否正确

Matlab程序为什么运行后图像为空白
如果你的代码没问题的话,下面几行的值都是固定的,你放在循环里 干什么,另外建议你把函数去掉,直接以脚本形式运行代码,这样会在 工作空间显示变量的值,你就会发现你为什么画不出图了,因此变量 根本是NAN值,怎么绘画出来 P=40159.35;M=V\/a;rou=1.225*exp(-0.000115*h);Cx=interp1(Ma,...

为什么下面的matlab程序运行出来图象是空白的呢?谢谢~
就是一个点啊,你把y=2*x;改成,y=2.*x;就ok了 ,还有去掉for循环,要不就只有一个点

matlab为什么用imwrite保存的图像是空白的?
imwrite(A,filemane)中如果图像A两种可能 1)A数据是整型取值为【0-255】;2)double类型,取值范围为【0-1.0】\\r\\n保存显示图像为空白,说明A为本应该为整型,但是实际确实double类型,取值超过规定的1.0,显示为白色\\r\\nuint8()其实是将double转换为【0-255】的整型数据,uint8(无符号整数...

相似回答