The colon notation used in multidimensional array

20 次查看(过去 30 天)
I have come across the following notation in MATLAB
y(:, :, :, 2) = y(:, :, :, 1);
y(:, 1, :, 4) = y(:, 1, :, 3);
I have no clue what it means?
I know for matrix A(:,1) and A(1,:) means extract first column and first row respectively. But the above is not clear to me.
Thanks.

采纳的回答

Adam
Adam 2015-4-28
It is just an extension of what you already know, but for multi-dimensional arrays. You can no longer use terms like 'rows' and 'columns' unless you have n ever more creative names for each dimension, but the logic is the same. Take all data from the dimensions that have a : and only the specified data from the dimensions which you give an exact index for.
Personally I rarely if ever use arrays of dimensionality higher than 3 because I like to be able to visualise what indexing means and since I can't visualise beyond a 3d cube I easily get confused. That said, the logic works the same whether it can be visualised intuitively or not!
  4 个评论
DM
DM 2015-4-28
编辑:DM 2015-4-28
But it gives me just second column not all rows. See example below
A=[2, 3, 4; 0, 5, 7]
A =
2 3 4
0 5 7
> A(:, 2)
ans =
3
5
Adam
Adam 2015-4-28
编辑:Adam 2015-4-28
It gives you all rows of the 2nd column. It's basically like a filter. It would give you all rows, but you told it to only give you column 2 so all other elements of the rows are thrown away.

请先登录,再进行评论。

更多回答(1 个)

Guillaume
Guillaume 2015-4-28
The colon is exactly the same as writing 1:end. In your example, naming the dimensions y, x, z, and t
y(:, :, :, 2) = y(:, :, :, 1);
copy all the values at t = 1 to t = 2 and
y(:, 1, :, 4) = y(:, 1, :, 3);
copy all the values at x = 1 and t = 3 to x = 1 and t = 4.

类别

Help CenterFile Exchange 中查找有关 Data Types 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by