Hello, I have a 15*15 matrix of all zeros.I want to replace each element of the matrix with different 2*2 matrices. How can it be done?
Thanks

2 commentaires

Andrei Bobrov
Andrei Bobrov le 20 Nov 2017
Do you want get a 30 x 30 matrix?
Santosh Nath
Santosh Nath le 20 Nov 2017
yes. I think 30*30 matrix is the only possible option in this case

Connectez-vous pour commenter.

Réponses (2)

Walter Roberson
Walter Roberson le 20 Nov 2017

0 votes

That cannot be done. Numeric matrices must have scalars at each position.
It would be possible to convert the numeric matrix to a cell array and then replace the cell contents. num2cell() would do the conversion to cell.

2 commentaires

Santosh Nath
Santosh Nath le 20 Nov 2017
Thanks fore the ans. I shall try your suggestion.
newMatrix = kron(YourMatrix, [1 1;1 1]);
newMatrix(I*2-1:I*2, J*2-1:J*2) = TwoByTwoMatrixFor(I,J)

Connectez-vous pour commenter.

Andrei Bobrov
Andrei Bobrov le 20 Nov 2017

0 votes

InitData = randi(150,2,2,15,15);
out = reshape(permute(InitData,[1 3 2 4]),30,[]);
or
InitData = arrayfun(@(x)randi(150,2,2),ones(15),'un',0);
out = cell2mat(InitData);

Catégories

En savoir plus sur Matrices and Arrays dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by