How do you subtract 1st dim all values in a 3D matrix with 1st dim all values of another 3D matrix?

11 visualizzazioni (ultimi 30 giorni)
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)
Is this possible without for loops?

Risposte (1)

AKHILA GOUDA il 14 Apr 2020
If I understand your question then you simple go through matrix element wise operation
  1 Commento
Ryan Thackston
Ryan Thackston il 14 Apr 2020
Modificato: Ryan Thackston il 14 Apr 2020
No that's not it, sorry I fixed some of the wording in my statement. I want to use all data from the 2nd dim before I take the mean.
I want to subtract by each data point in the 1st Dim for A & B

Accedi per commentare.




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by