if-statements for reassigning values
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Spaceman
am 22 Mär. 2024
Kommentiert: Spaceman
am 8 Apr. 2024 um 3:26
Given: Write a script that creates a random integer N, which is in the range [-100,100]. If that number is in the range [-20,20], reassign N to be the current value of N multiplied by 2. If the number is greater than 20, reassign N to be the square root of the current value. Otherwise, reassign N to be the current value divided by 4.
Find: Use an if-statement to complete this.
Issue: I'm getting errors stating I don't know how to use '='. To me, my solution makes sense. But I have trouble with syntax in MATLAB.
My Solution:
N=randi([-100,100]);
if N=[-20,20]
N=N*2
else if N>20
N=sqrt(N)
else
N=N/4
end
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (1)
Steven Lord
am 22 Mär. 2024
Let's look at the exact text of the error you received.
N=randi([-100,100]);
if N=[-20,20]
N=N*2
else if N>20
N=sqrt(N)
else
N=N/4
end
Using "N = [-20 20]" attempts to assign a vector with two elements to N. Assignment is not allowed in the condition part of an if statement.
Using "N == [-20 20]" (assuming N is compatibly sized) compares elements of N with elements of the vector [-20 20]. Comparison is allowed in the condition part of an if statement.
But you don't want to check if the elements in N are equal to -20 and 20. You want to check if they're in that interval. For that use the four inequality relational operators like < and >=. The and, & and or, | operators will also be of use.
Siehe auch
Kategorien
Mehr zu Install Products finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!