# if statement with vector

32 ビュー (過去 30 日間)
Ireedui Ganzorig 2020 年 3 月 12 日
コメント済み: Ireedui Ganzorig 2020 年 3 月 12 日
Hello MATLAB community,
Everything was just working when temps was a scalar; however, I couldn't figure out why my code is not giving me 3 corresponding results for the vector temps. I am expecting 3 answers such that -1 is solid, 1 is liquid and 101 is gas.
Thank you.
temps = [-1 1 101];
F = 9/5 .* temps + 32;
if F <= 32
disp(['The Fahrenheit temperature is ', num2str(F)])
disp('solid')
elseif F > 212
disp(['The Fahrenheit temperature is ',num2str(F)])
disp('gas')
elseif F < 212 && F > 32
disp(['The Fahrenheit temperature is ',num2str(F)])
disp('liquid')
end

サインインしてコメントする。

### 回答 (1 件)

Bhaskar R 2020 年 3 月 12 日
You are checking all values in the if conditioning, it gives pass condition if and only of all values are true, to avoid your situation use for loop to check each value of F
temps = [-1 1 101];
F = 9/5 .* temps + 32;
for ii=1:length(F)
if F(ii) <= 32
disp(['The Fahrenheit temperature is ', num2str(F(ii))])
disp('solid')
elseif F(ii) > 212
disp(['The Fahrenheit temperature is ',num2str(F(ii))])
disp('gas')
elseif F(ii) > 32 & F(ii)< 212
disp(['The Fahrenheit temperature is ',num2str(F(ii))])
disp('liquid')
end
end
##### 1 件のコメント表示非表示 なし
Ireedui Ganzorig 2020 年 3 月 12 日
thank you very much. I really appreciate it.

サインインしてコメントする。

### カテゴリ

Find more on Simulink Environment Customization in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by