Indexing error in loop

1 Ansicht (letzte 30 Tage)
summyia qamar
summyia qamar am 5 Jan. 2017
Kommentiert: Walter Roberson am 5 Jan. 2017
I have this cell array
Selected_route=
Column 1
[1x7 double]
Column 2
[1x7 double]
Column 3
[1x7 double]
Column 4
[1x7 double]
Column 5
[1x7 double]
Column 6
[1x7 double]
I want to check each value of individual a [1x7] array over a condition that
Selected_route{x}(y)(Selected_route{x}(y)>=1)=1
my complete code fro the problem is
Total_Products=6;
Types_Machine=7
for x=1:Total_Products
for y=1:Types_Machine
Movement=0;
Movement=Movement+(Selected_Routes{x}(y)(Selected_Routes{x}(y)>=1)=1)
end
end
Total_movement(x)=Movement
end
I want to do that Movement value is increased every time if the condition is met.. the error received is cannot call or index into a temporary array and I want that the
output Total_movement=[sum of all values in array 1] [sum of all values in array 2] upto Types_products number of arrays

Antworten (1)

Walter Roberson
Walter Roberson am 5 Jan. 2017
"=" is an assignment in MATLAB. Your code
Movement=Movement+(Selected_Routes{x}(y)(Selected_Routes{x}(y)>=1)=1)
attempts to have two assignments in the same expression.
The MATLAB equality comparison operator is "=="
  2 Kommentare
summyia qamar
summyia qamar am 5 Jan. 2017
but doing this
Movement=Movement+(Selected_Routes{x}(y)(Selected_Routes{x}(y)>==1)=1)
but still parse error is given
Walter Roberson
Walter Roberson am 5 Jan. 2017
Remove the for y loop. Use
Movement = sum(Selected_Routes{x}>=1);

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by