Need help in uderstanding this piece of code
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
adi kul
el 7 de Jul. de 2016
Hello All, This is the code I found somewhere in a script :
output(idx,:) = [y1(ii),z,smax];
Can anyone explain me the logic here? I mean what's expected out of this code?
1 comentario
Respuesta aceptada
Adam
el 7 de Jul. de 2016
idx defines the row of the 'output' matrix being written to and ':' says to just fill as many columns in that row as there are outputs from the right-hand side of the equation.
The stuff on the right is just an array of variables, the first being indexed into by some other variable so I assume in this case there are 3 elements in that vector and these will fill the 3 columns for row idx in 'output'.
1 comentario
Walter Roberson
el 7 de Jul. de 2016
In the code it is not strictly necessary that z or smax be scalars; they could be vectors, as long as the total length of the three variables matched the number of columns in the output array.
Más respuestas (1)
Thorsten
el 7 de Jul. de 2016
Editada: Thorsten
el 7 de Jul. de 2016
You generate a row vector
[y1(ii),z,smax]
And this vector is assigned to row "idx" of the output matrix
output(idx,:) = [y1(ii),z,smax];
You cannot do
output(idx) = [y1(ii),z,smax];
because you cannot assign a 1xN vector to a single number output(idx). So you need the ,: to assign the vector to a row.
0 comentarios
Ver también
Categorías
Más información sobre Operators and Elementary Operations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!