How to extend an array to a new dimension?

31 Ansichten (letzte 30 Tage)
Sufayan Mulani
Sufayan Mulani am 29 Aug. 2023
Beantwortet: Star Strider am 29 Aug. 2023
Suppose, I have an array
a=rand(3, 4);
I want to create a new array 'b' which has [ 3, 4, 5] size, and all 2D matrix along the third dimension are equal to 'a'.
b = zeros([size(a) 5]);
for i=1:5
b(:, :, i) = a;
end
How can I do this using MATLAB functions.

Akzeptierte Antwort

Star Strider
Star Strider am 29 Aug. 2023
One option is the repmat function —
a=rand(3, 4);
b = zeros([size(a) 5]);
for i=1:5
b(:, :, i) = a;
end
b
b =
b(:,:,1) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327 b(:,:,2) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327 b(:,:,3) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327 b(:,:,4) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327 b(:,:,5) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327
b2 = repmat(a, 1, 1, 5)
b2 =
b2(:,:,1) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327 b2(:,:,2) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327 b2(:,:,3) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327 b2(:,:,4) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327 b2(:,:,5) = 0.2207 0.2683 0.7580 0.4175 0.6446 0.7519 0.0339 0.4267 0.9818 0.8499 0.6944 0.9327
Both results are the same.
.

Weitere Antworten (0)

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by