永发信息网

matlab for循环

答案:3  悬赏:0  手机版
解决时间 2021-05-06 21:06
怎样将一个256×256的矩阵分为大小为8×8的不重叠矩阵,再将一个32×32的矩阵中的每个数依次取出与8×8矩阵中的每个数做运算,最后再放回8×8的矩阵中?
最佳答案
假设256x256的矩阵是img, 32x32的矩阵是coeff,

你的意思是在img最左上角的8x8矩阵和coeff(1, 1)做运算,
左上 img(1:8, 9:16)的和coeff(1, 2)运算
等等如此类推?

如果是的话
blockSize = [8, 8];
for ii = 1 : size(img, 1)/blockSize(1)
index1 = ((ii - 1) * blockSize(1) + 1) : ii * blockSize(1);
for jj = 1 : size(img, 2)/blockSize(2)
index2 = ((jj - 1) * blockSize(2) + 1) : jj * blockSize(2);
block = img(index1, index2);
% block 和 coeff(ii, jj) 进行运算, 结果存在modifiedBlock
img(index1, index2) = modifiedBlock;
end
end
全部回答

你可以把那个32×32的变成256×256的再乘会比较快点 a是个32×32的矩阵的话, 先repmat,然后用permute转一下,然后reshape

b = repmat(a, [1 1 8 8]); b = permute(b, [3 1 4 2]); b = reshape(b, [256 256]);

然后用这个b跟那个大矩阵 .*就好了 如果结果有问题的话你自己看着调整一下转的顺序什么的吧

系统对矩阵嵌套有限制

例如,a,b,c,d均为4*4矩阵,则e=[a,b;c,d]=8*8矩阵

如果想完成的是区域乘积,楼上的主意不错。

但似乎按你的题意,直接32*32的矩阵与256*256的矩阵做乘法,那不是更简单么?

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的黄钻1级、为什么图标显示2级
中国移动的动感地带卡 可以把外地卡转成本地
中国最早的诗歌是什么,诗歌起源于什么时候
我要怎么办?求解
DNF里的浅水是什么意思?
支付宝老是提示维护。
熊家岭地址在哪,我要去那里办事
描述樱桃的诗句
谁有穿越到死神的小说啊? 要按照剧情发展的.
为什么麦不没声音耳机有
我是大2的,由于成绩不合格,留级了,现在在
不知道是真假
英雄无敌5东方部落秘籍
长葛东转盘到郑州水产大概有多少公里
怎么让头发长的快更密
推荐资讯
为什么我QQ上没有这些好友也没有加任何校友!
望穿秋水,为何还望不穿你的、、?
小孩子坐飞机要买票吗,多大孩子坐飞机时需要
关于快乐生活的句子,积极心态快乐生活的句子
歌舞青春的男女主角还演过什么片?
剑侠情缘手游盟主令怎么得 盟主令获取技巧
泰戈尔赞美老师的诗句,泰戈尔的名言
班主任让初三学生花钱让自己老师补课 30元40
我老公又乖又花心怎么办?
为什么腾迅不能看小说
tooth的复数怎么写的啊
硬盘分区过大或过满会不会影响硬盘速度?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?