How can I index these matrix blocks into numbers?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Yuxing Zhang
el 6 de Nov. de 2018
Comentada: Yuxing Zhang
el 6 de Nov. de 2018
I have a 80×80 matrix A and divide it into 16 blocks of size 20x20, by
A=rand(80,80);
C= mat2cell(A,[20 20 20 20 ],[20 20 20 20]);
And I want to index these blocks in order from 1 to 16 like the figure shows, how can I do this?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/193919/image.png)
Any help will be excellent!
0 comentarios
Respuesta aceptada
Stephen23
el 6 de Nov. de 2018
Editada: Stephen23
el 6 de Nov. de 2018
Actually you can already access it like you want, using linear indexing. Try it:
C{1}
C{2}
...
C{16}
Here is a demonstration using the second-to-last cell, C{15}:
>> A = rand(80,80);
>> C = mat2cell(A,[20,20,20,20],[20,20,20,20]);
>> isequal(C{15},A(41:60,61:80))
ans = 1
2 comentarios
Stephen23
el 6 de Nov. de 2018
If this is related to your earlier question:
Then all you need is this:
C = mat2cell(...)
C(:) = C(V);
new = cell2mat(C)
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and Arrays 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!