【发布时间】:2020-05-12 05:27:53
【问题描述】:
我有一个代码,它对 256 x 256 矩阵的 8 x 8 子单元求和,得到一个大小为 32 x 32 的较小矩阵。我使用 for 循环,这会使过程变慢。这可以在不使用循环的情况下完成吗?我需要在优化工具 CVX 中使用这个求和代码,它不能很好地与内置的 MATLAB 函数配合使用。因此,它必须是没有内置函数的代码(尽管允许求和和均值)。
img=rand(256);
m=1;
n=1;
for i=1:8:256
for j=1:8:256
temp=img(i:i+7,j:j+7);
D(m,n)=sum(temp(:));
n=n+1;
end
m=m+1;
n=1;
end
【问题讨论】:
-
你有图片处理工具箱吗?
-
同样的问题,只是询问平均值:stackoverflow.com/q/22362988/2732801
-
@Daniel Dupe,不是吗?
-
需要编写不使用任何内置函数的代码。我需要将此函数提供给优化包(即 CVX),当它看到破坏问题凸性的内置函数时,它开始吓坏了
-
@AKhan:请更新您的问题以反映您的限制。如果我没记错 CVX,一些功能(包括重塑)是允许的,但我想当你尝试使用这个时,挤压是问题所在? stackoverflow.com/a/22363530/2732801
标签: matlab loops for-loop matrix downsampling