Replacing elements of a matrix

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 件のコメント

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

サインインしてコメントする。

回答 (2 件)

Walter Roberson
Walter Roberson 2017 年 11 月 20 日

0 投票

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 件のコメント

Santosh Nath
Santosh Nath 2017 年 11 月 20 日
Thanks fore the ans. I shall try your suggestion.
Walter Roberson
Walter Roberson 2017 年 11 月 20 日
newMatrix = kron(YourMatrix, [1 1;1 1]);
newMatrix(I*2-1:I*2, J*2-1:J*2) = TwoByTwoMatrixFor(I,J)

サインインしてコメントする。

Andrei Bobrov
Andrei Bobrov 2017 年 11 月 20 日

0 投票

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);

カテゴリ

ヘルプ センター および File ExchangeMultidimensional Arrays についてさらに検索

質問済み:

2017 年 11 月 19 日

回答済み:

2017 年 11 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by