Matlab - sumowanie elementów macierzy o wartościach większych niż i mniejszych niż

Matlab - sumowanie elementów macierzy o wartościach większych niż i mniejszych niż
WE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

Cześć. Dopiero zaczynam w Matlabie, mam w ramach ćwiczenia zrobić kilka zadań i zacięłam się na jednym. Mianowicie muszę zsumować elementy macierzy które są większe niż 5 i mniejsze niż 10. Używam znaku && i robię wszystko według wskazówek, próbuję z nawiasami na różne sposoby, ale suma cały czas wychodzi zła. Czy ktoś mógłby pomóc mi wpaść na to gdzie robię błąd?

to moja macierz:
for i=1:8
for j=1:i
C(i,j)=i+j;
end
end

a to sumowanie elementów:
for i=1:8
for j=1:8
if ((5<(C(i,j)))&&(C(i,j))<10); - wkleiłam tu jeden z przykładów którego próbowałam
end
end
end

suma=suma+C(i,j);
suma

Z góry dziękuję za wszelkie rady i pomoc.

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
0

A jaki jest błąd?

WE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

suma powinna wynosić 107, a mi wychodzi albo 16 albo 32

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
0

Wklej cały kod z formatowaniem

WE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

for i=1:8
for j=1:i
C(i,j)=i+j;
end
end
C

C =

 2     0     0     0     0     0     0     0
 3     4     0     0     0     0     0     0
 4     5     6     0     0     0     0     0
 5     6     7     8     0     0     0     0
 6     7     8     9    10     0     0     0
 7     8     9    10    11    12     0     0
 8     9    10    11    12    13    14     0
 9    10    11    12    13    14    15    16

for i=1:8
for j=1:8
if (5<(C(i,j))&&(C(i,j))<10);
end
end
end
suma=suma+C(i,j);
suma

suma =

16
WY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 64
0
a
WE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

w poprzednim zadaniu, które było podobne używałam takiej formuły, żeby zliczyć "0" w macierzy:
if C(i,j)==0
a w tym zadaniu z sumowaniem elementów miało być użyte "&&" do tych dwóch warunków (5< i <10)

PH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
1
Kopiuj
for i=1:8
for j=1:8
if (5<(C(i,j))&&(C(i,j))<10);
suma=suma+C(i,j);
end
end
end
suma

Powinno wystarczyć przenieść linkuję z sumowanie do if'a.

Obecnie masz sumowanie na samym końcu, po wykonaniu obu pętli. W efekcie sumowanie wykonuje się tylko raz - dla ostatniego obiektu w macierzy, czyli 16.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.