4 svar
422 visningar
Svalan behöver inte mer hjälp
Svalan 25
Postad: 28 nov 2020 14:43

Summering med hjälp av if satser

Frågan jag har kört fast med lyder:

Använd kommandot A=randi([10,100],6,20) för att skapa en matris
med sex rader och 20 kolonner, vars element är slumptal mellan 10 och
100. Hur många av elementen i A är tal mellan 30 och 65? Beräkna
summan av dessa tal.

 

Jag kan lösa problemet genom att manuellt räkna hur många tal som ligger mellan  30 och 65 för att sedan summera ihop dom utan MATLAB. Nu vill jag dock lösa problemet med hjälp av if-satser och for-slingor. Det finns även en ledtråd att jag ska använda koden

 

s=0;
N=0;
for i=1:6
  for j=1:20
    if...

 

Jag förstår inte vad den koden betyder eller hur jag ska fortsätta

Aerius 504 – Fd. Medlem
Postad: 28 nov 2020 15:45

Välkommen till PLUGGAKUTEN!

En for-loop kan sägas vara ett specialfall av en while-loop. En if-sats delarupp olika val. Det är 6 rader och 20 kolumner i matrisen. I for-loopen du fått går variabeln i därför över raderna (då den går mellan 1 - 6) och variabeln j går över kolumnerna (då den går från 1 - 20). Spara summan av alla värden i variablen s och spara hur många variabler som summerats i N. Om du skriver om variabelnamnen till summa, antal, rader, kolumner kanske det blir enklare att se vad koden gör. Tal utan beskrivning som i for-loopen du fått brukar kallas magic numbers, eftersom man inte vet vad dom är. Generellt ska man undvika magic numbers eftersom det är svårt att förstå vad dom har för betydelse i koden.

SaintVenant 3956
Postad: 28 nov 2020 16:24

Ett hett tips är att göra en mindre matris du enklare kan kontrollera för hand. Detta gör att du kan ha mer översikt över vad din kod gör.

if (A(i,j) >= 30) && (A(i,j) <= 65)

           N = N+1;

           s = s + A(i,j)

end

Du kan läsa om detta här:

Execute conditions if statement is true (mathworks help center)

Du kan också skriva "help if" i Matlab.

SaintVenant 3956
Postad: 28 nov 2020 16:25
Aerius skrev:

Tal utan beskrivning som i for-loopen du fått brukar kallas magic numbers, eftersom man inte vet vad dom är. Generellt ska man undvika magic numbers eftersom det är svårt att förstå vad dom har för betydelse i koden.

Det är del av lärandeprocessen att förstå koden så poängen är att deras betydelse inte direkt ska vara uppenbar.

Aerius 504 – Fd. Medlem
Postad: 28 nov 2020 17:52
Ebola skrev:
Aerius skrev:

Tal utan beskrivning som i for-loopen du fått brukar kallas magic numbers, eftersom man inte vet vad dom är. Generellt ska man undvika magic numbers eftersom det är svårt att förstå vad dom har för betydelse i koden.

Det är del av lärandeprocessen att förstå koden så poängen är att deras betydelse inte direkt ska vara uppenbar.

Jag skrev ju generellt ska dom undvikas. I det här fallet hade jag också skrivit sådär som i uppgiften

Svara
Close