gpt4 book ai didi

arrays - 如何矢量化此代码?

转载 作者:行者123 更新时间:2023-12-02 06:34:17 24 4
gpt4 key购买 nike

首先,我要说的是,我找不到适合我的问题的标题,因此,如果有人能编辑标题,我将不胜感激!
假设我有一个 18432x1472 矩阵,我想将其转换为 3072x1472 矩阵 ( 18432/6 = 3072 ),格式如下:
旧矩阵的元素 (1,6),(2,6),...,(6,6) 的平均值将转到新矩阵的元素 (1,1)旧矩阵的元素 (7,6),(8,6),...,(12,6) 的平均值将转到新矩阵的元素 (2,1) 等等
到目前为止,我已经编写了这段代码:

function Out = MultiLooking( In )
MatrixIn = double(In);
m = size(In,1);
InTranspose = MatrixIn';
A = zeros(m,m/6);
for i = 1:(m/6)
A(6*(i-1)+1,i) = 1;
A(6*(i-1)+2,i) = 1;
A(6*(i-1)+3,i) = 1;
A(6*(i-1)+4,i) = 1;
A(6*(i-1)+5,i) = 1;
A(6*(i-1)+6,i) = 1;
end
X = (InTranspose*A)/6;
Out1 = X';
Out = uint8(Out1);
end

但它有点慢,而且对于我的极化 SAR 数据,计算机在运行这段代码时会挂掉一段时间,所以我需要代码运行得更快!
谁能建议我一个更快的代码来实现这个目的???

最佳答案

Divakar's nice answer 的替代品: 使用 blockproc (图像处理工具箱):

blockproc(MatrixIn, [6 size(MatrixIn,2)], @(x) mean(x.data))

关于arrays - 如何矢量化此代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23817125/

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