Division of two Multidimensional array
Ältere Kommentare anzeigen
Hi
I have two multidimensional array say A (30x10x30) & B(30x10x30). I want to divide the elements of A by the corresponding elements of B.
How to do it.
I am not getting corrrect result by diving like this A./B
6 Kommentare
Image Analyst
am 11 Jul. 2021
That should work. Please post your arrays and tell us, for some particular location, what you're getting and what you thought you should get.
save('answers.mat', 'A', 'B');
mukesh bisht
am 11 Jul. 2021
Image Analyst
am 11 Jul. 2021
Uh, ok, but I'm still waiting for you to answer "tell us, for some particular location, what you're getting and what you thought you should get."
Like C(1,3,5) is 150 when it should be
I'll check back later.
load('matlab.mat')
C = A ./ B;
numSlices = size(C, 3);
for k = 1 : numSlices
subplot(1, 3, 1);
imshow(A(:, :, k), [], 'InitialMagnification', 1000);
axis('on', 'image');
impixelinfo;
title('A', 'FontSize', 20);
subplot(1, 3, 2);
imshow(B(:, :, k), [], 'InitialMagnification', 1000);
axis('on', 'image');
impixelinfo;
title('B', 'FontSize', 20);
subplot(1, 3, 3);
imshow(C(:, :, k), [], 'InitialMagnification', 1000);
axis('on', 'image');
impixelinfo;
title('C', 'FontSize', 20);
drawnow;
pause(0.4);
end
mukesh bisht
am 11 Jul. 2021
Image Analyst
am 11 Jul. 2021
OK, I get
load('matlab.mat')
C = A ./ B;
fprintf('A(7,1,1) = %f.\n', A(7,1,1));
fprintf('B(7,1,1) = %f.\n', B(7,1,1));
fprintf('C(7,1,1) = %f.\n', C(7,1,1));
A(7,1,1) = 0.000055.
B(7,1,1) = 0.001192.
C(7,1,1) = 0.045776.
Explain why you get 0 for A and B. Did you upload the wrong data?
mukesh bisht
am 11 Jul. 2021
Antworten (1)
you can iterate the 2D division
A = rand(30,10,30);
B = rand(30,10,30);
sz=size(A);
r = cell(sz(3),1);
for i = 1:sz(3)
r{i} = A(:,:,i)./B(:,:,i); % in this cell array you will have the divisions
end
Kategorien
Mehr zu Images finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!