首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制不同值上的matlab函数

绘制不同值上的matlab函数
EN

Stack Overflow用户
提问于 2012-09-06 00:27:11
回答 1查看 315关注 0票数 1

我在Matlab中有3个函数:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

所有函数都计算出飞机发动机不同部件的散热值,这取决于从哪个角度看,从某些角度看不到发动机的某些部件。

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

代码语言:javascript
复制
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)

代码语言:javascript
复制
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上绘制这个问题的各个方面。我希望看到从0到360的所有值以5为增量的turbemcompemplumem,最后是totalemission的图表。

这个是可能的吗?又是如何做到的?

EN

回答 1

Stack Overflow用户

发布于 2012-09-06 01:37:48

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

代码语言:javascript
复制
a=pi*(0:5:360)/180;

然后精确地计算这些角度的发射分量,然后使用极图来表示它们

代码语言:javascript
复制
polar(a,totalemission);

对于没有显式保存的术语,比如turbem(a,t),您应该将它们存储在一个新的变量中,比如turbineEmission,这样您就可以在不重新计算的情况下绘制它们。

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

代码语言:javascript
复制
engine1(a<=45)=1;
engine1(a>45 & a<155)=0;
engine1(a>=155)=1;

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12285850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档