How do you subtract 1st dim all values in a 3D matrix with 1st dim all values of another 3D matrix?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have two 3D matrices that are the same.
size(A) = [10 100 50]
size(B) = [10 100 50]
I want to subtract along every value in the 1st dim of A with every value in 1st dim of B with no for loops so using bsxfun. I will also take the mean in the middle
I want to end up with 10x10x50. How do I do this?
So far, I just have
z = mean(bsxfun(@minus, A, B, 2)
which subtracts every matching data index in 1st dim so [1-1] [2-2] ... [10-10]
I'm left with a 10x1x50 matrix of zeros.
I want to do
[1-1] [1-2] ... [1-10]
[2-1] ...
...
[10-1] [10-2] ... [10-10]
I can do this and I get the 10x10x50 matrix I want:
for i = 1:10
for j = 1:10
z = mean(bsxfun(@minus, A(i), B(j), 2)
end
end
Is this possible without for loops?
0 Kommentare
Antworten (1)
AKHILA GOUDA
am 14 Apr. 2020
If I understand your question then you simple go through matrix element wise operation
A=rand(10,100,50);
B=rand(10,100,50);
C=A(:,1:10,:)-B(:,1:10,:);
size(C)
1 Kommentar
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!