Need help in uderstanding this piece of code

1 次查看(过去 30 天)
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?

采纳的回答

Adam
Adam 2016-7-7
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 个评论
Walter Roberson
Walter Roberson 2016-7-7
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.

请先登录,再进行评论。

更多回答(1 个)

Thorsten
Thorsten 2016-7-7
编辑:Thorsten 2016-7-7
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.

类别

Help CenterFile Exchange 中查找有关 Debugging and Analysis 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by