Replacing elements of a matrix
Show older comments
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 Comments
Andrei Bobrov
on 20 Nov 2017
Do you want get a 30 x 30 matrix?
Santosh Nath
on 20 Nov 2017
yes. I think 30*30 matrix is the only possible option in this case
Answers (2)
Walter Roberson
on 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 Comments
Santosh Nath
on 20 Nov 2017
Thanks fore the ans. I shall try your suggestion.
Walter Roberson
on 20 Nov 2017
newMatrix = kron(YourMatrix, [1 1;1 1]);
newMatrix(I*2-1:I*2, J*2-1:J*2) = TwoByTwoMatrixFor(I,J)
Andrei Bobrov
on 20 Nov 2017
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);
Categories
Find more on Multidimensional Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!