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

3 vues (au cours des 30 derniers jours)
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?

Réponses (1)

AKHILA GOUDA
AKHILA GOUDA le 14 Avr 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 commentaire
Ryan Thackston
Ryan Thackston le 14 Avr 2020
Modifié(e) : Ryan Thackston le 14 Avr 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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by