Effacer les filtres
Effacer les filtres

could anyone help me how to compute the mean square error between two cell.

1 vue (au cours des 30 derniers jours)
I am having two cell A and B in the attached data.mat.
I want to compute the mean square error between A and B in data.mat.
Could anyone please help me on this.
  2 commentaires
Yazan
Yazan le 17 Juil 2021
How are you defining the MSE for your data? Each cell of A and B is a N-by-2 vector.
jaah navi
jaah navi le 17 Juil 2021
Here, both A and B has the same N-by-2 vector, for example
A{1,1}
1 2
1 1
1 1
1 1
1 2
1 1
1 2
1 2
1 2
1 2
B{1,1}
1 1
1 2
1 1
1 1
1 1
1 1
1 2
1 2
1 2
1 1
So first column of A needs to get subtracted with first column of B denoted by C and second column of A needs to get subtracted with second column of B denoted by D. Then I need to find the difference between C and D, square it and add all the rows and divide it by the 10.

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 17 Juil 2021
cellfun(@(a,b) sqrt(sum(a(:)-b(:)).^2))
You had the wrong definition of mean square error.
  10 commentaires
jaah navi
jaah navi le 18 Juil 2021
i am getting error stating Undefined operator '-' for input arguments of type 'cell'.
Walter Roberson
Walter Roberson le 18 Juil 2021
Please show the output of the following:
cellfun(@(a)string(class(a)), A)
cellfun(@(a)string(class(a)), B)
I suspect your A and B are not cell array of double like you indicate here. Judging by some of your other posts, I suspect that you have a mix, that some of the entries are double and others are cell.

Connectez-vous pour commenter.

Plus de réponses (1)

jaah navi
jaah navi le 18 Juil 2021
Anyhow i managed to get the partial output as required using the following commands for my data.mat as attached.
C=cellfun(@minus,A,B,'UniformOutput',false);
D=cellfun(@(x) sum((x(:,1)-x(:,2)).^2)/10,C,'UniformOutput',false)
Now I want to sum up all the rows of D and divide it by 5.
Could you please help me on this.
  5 commentaires
Walter Roberson
Walter Roberson le 18 Juil 2021
cellfun(@(a,b) mean(sum(a(:)-b(:)).^2), A, B)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by