【问题标题】:plotting a matlab function over different values在不同的值上绘制 matlab 函数
【发布时间】:2012-09-05 16:27:10
【问题描述】:

我在 Matlab 中有 3 个函数:

function [turbine] = turbem(a,t)

turbine=zeros(size(a));
c1=a<90;
c2=a>90 & a<270;
c3=a>270;

turbine(c1)=0;
turbine(c2)=t*0.5*(1+cos((a*pi)/90));
turbine(c3)=0;

end

function [compressor]=compem(a,c)

compressor=zeros(size(a));
c1=a<=90;
c2=a>90 & a<270;
c3=a>=270;

compressor(c1)=abs(cos((a*pi/180)))*c;
compressor(c2)=0;
compressor(c3)=abs(cos((a*pi/180)))*c;

end

function [plume]=plumem(a,p)

plume=zeros(size(a));
c1=a<90;
c2=a>=90 & a<=270;
c3=a>270;

plume(c1)=(a/90)*p;
plume(c2)=1*p;
plume(c3)=((360-a)/90)*p;

end

所有函数都计算出飞机发动机不同部分的热量排放值,具体取决于观察角度,因为从某些角度看,您将看不到发动机的某些部分。

下一部分允许我输入值,并获得所需的端点,即总排放量,具体取决于可以看到的发动机数量。

a=input('Enter Azimuth Angle');
t=input('Enter Turbine Emission Component');
c=input('Enter Compressor Emission Component');
p=input('Enter Plume Emission Component');
b=input('Enter Body Emission Component');

engemission=(turbem(a,t)+compem(a,c)+plumem(a,p)+b)
totalengines=(e1(a)+e2(a)+e3(a)+e4(a))
totalemission=totalengines*engemission

e1(a)、e2(a) 等如下所示: 函数engine1=e1(a)

engine1=zeros(size(a));
c1=a<=45;
c2=a>45 & a<155;
c3=a>=155;

engine1(c1)=1;
engine1(c2)=0;
engine1(c3)=1;

end

基本上,我希望能够从各个角度绘制这个的各个方面0:5:360。我想看看turbemcompemplumem 和最后totalemission 的图表,所有值从 0 到 360,增量为 5。

这可能吗?怎么做?

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    您无需接收 a 的输入,而是将 a 定义为 0->360 度,步长为 5,然后转换为弧度。

    a=pi*(0:5:360)/180;
    

    然后完全按照您的操作计算这些角度的发射分量,然后使用极坐标图来呈现它们

    polar(a,totalemission);
    

    对于您没有像turbem(a,t) 这样明确保存的术语,您应该将它们存储在一个新变量中,例如turbineEmission,这样您就可以绘制它们而无需重新计算。

    我没有详细检查您的实现,但它似乎已经充分矢量化,可以使这种方法正常工作。需要注意的一点是,最好不要将逻辑数组存储到 c1、c2 和 c3 变量中。所以例如在 e1 你会使用

    engine1(a<=45)=1;
    engine1(a>45 & a<155)=0;
    engine1(a>=155)=1;
    

    更新:好吧,忽略最后一部分。看起来 2011b 上的两个实现之间的速度差异可以忽略不计(感谢 Matlab!)

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多