toggle and elseif in matlab
16 次查看(过去 30 天)
显示 更早的评论
Try adding a variable doDisplay to toggle if the densities are displayed. Add this condition with an elseif block.
i do not understand what we are supposed to do in the above question(bold). this question is a part of futher practice in mathlab oramp. decision branching topic futher practice section in matworks course for basic matlab. how do i solve tha bove question
采纳的回答
Geoff Hayes
2020-5-4
Shivaani - I think that all the code is asking you to do is to add another variable called doDisplay and an elseif that would check if this variable is true. If so, then you would plot the densities. So there would be two ways to plot the data - either through the doPlot or with the doDisplay
if doPlot
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
else
disp("The density of " + element ...
+ " is " + density)
end
You would need to declare and initialize the doDisplay variable too.
4 个评论
Geoff Hayes
2020-5-5
I'm not sure then...I added the above code and was able to proceed/pass. Are you sure that you have defined doDisplay?
Elisa R
2020-8-4
This is what I did. I ran it numerous times. both doPlot and doDisplay have to be 0 in this scenario in order for the text to display instead of the plot.
doPlot = randi([0 1])
load datafile
density = data(:,1);
doDisplay = randi([0 1])
if doPlot == 1
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay == 1
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
else
disp("The density of " + element ...
+ " is " + density)
end
更多回答(7 个)
Varot Pakavatsoontorn
2021-5-1
Hi, I think the instructor might mean the following:
doDisplay = 1-doPlot
if doPlot == 1
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay == 1
disp("The density of " + element ...
+ " is " + density)
end
2 个评论
Simone Silva
2022-3-7
Hi.
The instructor asks what hapenned when doPlot and doDisplay are both equal one or they both equal zero.
If we define doDisplay=1-doPlot, the cases above are not possible.
Rik
2022-4-7
This is imo the best interpretation of the task at hand and a great solution.
Saif Alameri
2022-8-26
My interpretation to this practice is to create another variable (doDisplay) with random number (0 or 1) just like the (doPlot), then use it as a second condtion for (elseif):
doPlot = randi([0 1])
doDisplay=randi([0 1])
load datafile
density = data(:,1);
if doPlot == 1
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay == 1
disp("The density of " + element + " is " + density)
end
When:
doPlot = 0 and doDisplay = 0, then nothing displaied
doPlot = 1 and doDisplay = 0, then plot displaied
doPlot = 0 and doDisplay = 1, then density displaied
doPlot = 1 and doDisplay = 1, then only plot displaied
The point of this practice is to explain that second condtion will executing only when it met it's condtion and first condtion is not.
1 个评论
DGM
2024-8-16
I think this is the correct and most direct interpretation of the instructions. I can see why a person would be confused though, as it doesn't really make sense to use if/elseif for this. To me, it would be more sensible to do
if doPlot
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
end
if doDisplay
disp("The density of " + element + " is " + density)
end
Otherwise, there's not really any point in using multiple flags to control the behavior. As much as I think it's better, this isn't what the instructions describe.
Kakasaheb Nikam
2020-5-14
a Simple trick that i follow is,
at beginning I also not understand,
so we read it thrice by breaking sentance.
apply simple common logic.
we understand it.
0 个评论
Joanne Middour
2021-2-13
This is the way I did it because I was under the impression that they are asking us to do recursion here, but I may be wrong.
doDisplay = randi([0 1])
if doPlot == 1
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay == 1
doPlot = 1
else
disp("The density of " + element ...
+ " is " + density)
end
1 个评论
ABINESH R
2022-7-2
they are also asking what happens when they both equal zero, or when only doDisplay equals one?What's the ans for this
sai
2021-4-4
if doPlot == 1
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay
disp("The density of " + element ...
+ " is " + density)
end
0 个评论
kunku S M
2022-2-3
try this, i think it's the answer
doDisplay=randi([0 1])
if doPlot == 0
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay == 1
disp("The density of " + element ...
+ " is " + density)
end
0 个评论
Muhammad
2024-8-7
编辑:Muhammad
2024-8-8
I have tried: Here we can test what happens when both are equal to 1 or zero or only doDisplay is equal to 1. Nothing happens when both are equal to zero. When both are equal to 1, graph is printed. When only doDisplay is 1, it displays the densities. But still seems to be tricky quetion.
doPlot = randi([0 1])
doDisplay = randi([0 1])
density =
if doPlot == 1
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
elseif doDisplay ~= doPlot
disp("The dinsity of " + element ...
+ " is " + density)
else
doPlot
doDisplay
end
1 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Distribution Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!