gpt4 book ai didi

matlab - 如何在 Matlab 中裁剪任意维数的矩阵?

转载 作者:太空宇宙 更新时间:2023-11-03 20:13:58 33 4
gpt4 key购买 nike

假设我有 4D 矩阵:

>> A=1:(3*4*5*6);
>> A=reshape(A,3,4,5,6);

现在我想切割给定数量的行和列(或已知尺寸的任何给定 block )。

如果我知道它是 4D 我会写:

>> A1=A(1:2,1:3,:,:);

但是如何针对任意给定的维数进行通用写入呢?

下面给出了一些不同的东西:

>> A2=A(1:2,1:3,:);

下面给出了一个错误:

>> A2=A;
>> A2(3:3,4:4)=[];

最佳答案

可以使用您使用的第二种索引形式和 reshape 函数生成具有一般维数 A 的代码。这里有一个例子:

Asize = [3,4,2,6,4]; %Initialization of A, not seen by the rest of the code
A = rand(Asize);

%% This part of the code can operate for any matrix A
I = 1:2;
J = 3:4;
A1 = A(I,J,:);
NewSize = size(A);
NewSize(1) = length(I);
NewSize(2) = length(J);
A2 = reshape(A1,NewSize);

A2 将是您的裁剪矩阵。它适用于您选择的任何 Asize

关于matlab - 如何在 Matlab 中裁剪任意维数的矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33608066/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com