Analysing Equation in matlab

1 次查看(过去 30 天)
Shawaiz Akhter
Shawaiz Akhter 2020-9-24
I am new to matlab and I made a graph of flight score against payload to find apoint where we can get max flight score but i ended up getting blank graph.
This is a code I used. Thank you very much for your time.
nl = [1 , 2];
ns = [2 , 3];
payload = [300 , 400];
x = 1*nl;
y = 0.4*ns;
bonus = [0.5 + (1 *nl) + (0.4 * ns)];
T = [ 5 , 8];
d = payload .* bonus;
e = sqrt(d);
f = 80 * e;
fs = f/T;
plot(fs,payload)
  1 个评论
Johannes Hougaard
Johannes Hougaard 2020-9-24
I think this may well be one of the cases where it's kinda counterintuitive that / doesn't do what you think it does.
the '/' operator (mrdivide) is not identical to the './' operator (rdivide). I believe what you're looking for is the element-wise division (rdivide) and that your code should be
nl = [1 , 2];
ns = [2 , 3];
payload = [300 , 400];
x = 1*nl;
y = 0.4*ns;
bonus = [0.5 + (1 *nl) + (0.4 * ns)];
T = [ 5 , 8];
d = payload .* bonus;
e = sqrt(d);
f = 80 * e;
fs = f./T;
plot(fs,payload)

请先登录,再进行评论。

回答(1 个)

Ollie A
Ollie A 2020-9-24
Be careful when multiplying and dividing arrays; you will need to use the dot notation.
You remembered it for
d = payload .* bonus;
but it is also needed when dividing
fs = f./T;
I also find it helpful to plot data points as crosses:
plot(xdata,ydata,'x')
hold on
plot(xdata,ydata)
that way if you only have 1 data point it will still appear on the plot as a cross.
Also note: if you want flight score on the y-axis and payload on the x-axis, it will be
plot(payload,fs)
  1 个评论
Johannes Hougaard
Johannes Hougaard 2020-9-24
if you like the 'line with cross notation' it's not necessary to call the hold on and a second call to plot you can simple do that by
plot(xdata,ydata,'-x');

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Calendar 的更多信息

标签

产品


版本

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by