Borrar filtros
Borrar filtros

How can I index these matrix blocks into numbers?

1 visualización (últimos 30 días)
Yuxing Zhang
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?
Any help will be excellent!

Respuesta aceptada

Stephen23
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
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)
Yuxing Zhang
Yuxing Zhang el 6 de Nov. de 2018
yeah, I do get, thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by