operation array in cell
信息
此问题已关闭。 请重新打开它进行编辑或回答。
显示 更早的评论
i have 2 matrix A and B and cell Z with 13*13 blocks. each blocks have 8*8 pixel.
A=rand(13,13,8,8);
B=rand(13,13,8,8);
i want to process value A and B with each blocks in cell Z.
XY = (Z*A)+B
example, value at A if you see at workspace, start with val(:,:,1,1), there's will be 169 value of A. each value will be process with every blocks of Z to get XY. same with matrix B. total blocks of Z is same with total value of A and B in val {:,:,1,1}.
specificly,
XY{1,1}=Z{1,1}.*A{1,1,1,1} + B{1,1,1,1},
XY{1,2}=Z{1,2}.*A{1,2,1,1}+B{1,2,1,1} until the whole blocks of Z.
3 个评论
Jan
2013-3-5
What have you tried so far and which problems occurred?
Internazionale
2013-3-5
Internazionale
2013-3-5
回答(1 个)
Andrei Bobrov
2013-3-5
编辑:Andrei Bobrov
2013-3-5
A1 = permute(A,[3 4 1 2]);
B1 = permute(B,[3 4 1 2]);
XY = Z;
for ii = 1:size(Z,1)
for jj = 1:size(Z,2)
XY{ii,jj} = Z{ii,jj}.*A1(:,:,ii,jj) + B1(:,:,ii,jj);
end
end
ADD variant
Zn = cat(3,Z{:});
s = size(A);
A1 = reshape(permute(A,[3 4 1 2]),s(3),s(4),[]);
B1 = reshape(permute(B,[3 4 1 2]),size(A1));
XY = reshape(num2cell(Zn.*A1+B1,[1 2]),size(Z));
7 个评论
Andrei Bobrov
2013-3-5
Added more variant
Internazionale
2013-3-5
Jan
2013-3-5
This is a part of an error message. We could suggest an improvement if you post the corresponding code you have used.
Internazionale
2013-3-5
Andrei Bobrov
2013-3-6
eg:
A = randi([3 8],[13,13,8,8]);
B = randi([10 20],[13,13,8,8]);
Z = mat2cell(randi(10,104),8*ones(1,13),8*ones(1,13));
A1 = permute(A,[3 4 1 2]);
B1 = permute(B,[3 4 1 2]);
XY = Z;
s = size(Z);
for ii = 1:s(1)
for jj = 1:s(2)
XY{ii,jj} = Z{ii,jj}.*A1(:,:,ii,jj) + B1(:,:,ii,jj);
end
end
Jan
2013-3-6
@Internazionale: It would help, if you post the code you are using and a complete copy of the error message. Andrei hast posted two different solutions, and you could potentially have modified one of them, e.g. by a typo. We cannot reliably guess the cause of the error on your computer, so it is your job to explain the circumstances.
Internazionale
2013-3-6
编辑:Internazionale
2013-3-6
此问题已关闭。
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!