mtlab入門のプロ​グラミング 判定分岐​タスク2に対し解答通​りに入力しても、”d​oPlot が 0 のとき、密度は表示されますか?”が表示される。

8 views (last 30 days)
修
on 8 Sep 2022
Answered: Hiro on 9 Sep 2022
以下が入力した内容です。問題が有りましたら指摘願います。
if doPlot
plot(density)
title("Sample Densities")
xticklabels(element)
ylabel("Density (g/cm^3)")
else
disp("The density of" + element ...
+ " is " + density)
end

Answers (2)

Hernia Baby
Hernia Baby on 8 Sep 2022
of の後、スペースが抜けています。
変更前
element = 1;
density = 0;
disp("The density of" + element ...
+ " is " + density)
The density of1 is 0
変更後
disp("The density of " + element ...
+ " is " + density)
The density of 1 is 0

Hiro
Hiro on 9 Sep 2022
disp("The density of" + element ...
+ " is " + density)
から察するに、element は string 型 なのかなと思いました。そうすると
xticklabels(element)
は x軸の tick label を与えるコマンドなので、string 型だと tick の数が少ない可能性があります。
以下の方が適当かなと思いました?
xlabel(element)
仮に、element が string 配列型 だとしても、xticks で表示位置を指定しないと意図しないx 軸の場所に element が出てしまいます。
xticklabels をご参照ください。そして element が string 配列型だと、
element = ["a", "b", "c"];
disp("the density of " + element);
"the density of a" "the density of b" "the density of c"
となってしまい、期待と違うのかな? とも思いますが、どうでしょうか?
これが期待通りというのであれば、xticks を以下のように使うと所望の x 軸の部分に element を表示させることができます。
if doPlot
plot(density)
title("Sample Densities")
xticks([0 5 10]); % 例えばこんな感じで指定
xticklabels(element)
ylabel("Density (g/cm^3)")
else
disp("The density of " + element ...
+ " is " + density)
end
因みにですが、
string 型というのは
myString = "Hello"
string 配列型というのは
myStringArray = ["Hello", "こんにちは", "Hallo"]
みたいなものことです。

Community Treasure Hunt

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

Start Hunting!