Так что скажем, что у меня есть 3d-матрица A
переменного размера. Есть ли простая в использовании команда, которая складывает матрицу как B = [squeeze(A(1,:,:)); squeeze(A(2,:,:)); ...; squeeze(A(n,:,:))]
?Стек подматрицы 3d-матрицы в одной матрице
Сейчас я использую следующие, но его громоздким:
if(length(A(:,1,1))==1)
B =squeeze(A);
else
B = zeros(length(A(:,1,1)*length(A(1,:,1)), length(A(1,1,:)));
B(1:length(A(1,:,1)),:) = squeeze(A(1,:,:));
for i=2:length(A(1,:,1)
B(1:i*length(A(1,:,1)),:)=...
vertcat(B, squeeze(A(i,:,:)));
end
end
Дерьмо, я знал, что транспонирование не было необходимости. Отлично сработано. – TroyHaskin
@TroyHaskin Да! По крайней мере, вы могли бы использовать '[]' для замены этого размера (A, 1) * (A, 2) ', чтобы он выглядел менее громоздким в вашем решении, поскольку OP намекал на него! – Divakar
Да. Это всего лишь ментальный блок, который у меня есть, поскольку я использую единое соглашение по сравнению с версией с несколькими входами. Думаю, я сделаю это изменение сейчас. – TroyHaskin