Problems on doing the combination of two variables (columns) in a matrix.

2 vues (au cours des 30 derniers jours)
Josep
Josep le 3 Sep 2014
Commenté : Josep le 5 Sep 2014
I have to obtain a test statistics from an equation (T), for a thermodynamic process. Fk matrix is made of variables (columns) and constraints (rows). In my code the only changing matrix would be Fk, so I have to obtain the test for all the possible combinations of 2 variables of Fk(15x2) without repeating any.
the combination of the variables should be like this (where this variables are the columns of Fk):
1,2
1,3
1,4
1,5
1,6
2,3
2,4
2,5
2,6
3,4
......
5,6
I attach here the Excel file of the measured values of the variables from 1 to 6 and the matlab code I have done for the combination of one variable.
Does anybody know how should be the code for all the combinations like this?

Réponse acceptée

Guillaume
Guillaume le 3 Sep 2014
nchoosek is your friend:
combinations = nchoosek(1:size(Fk, 2), 2);
for combination = combinations'
var1 = Fk(:, combination(1));
var2 = Fk(:, combination(2));
%do something with var1 and var2
end
  5 commentaires
Guillaume
Guillaume le 5 Sep 2014
Modifié(e) : Guillaume le 5 Sep 2014
You don't really need to calculate TC or C, they're equal to size(combinations, 1) (and you could calculate them easier with nchoosek(Nby, 2) anyway), and you could simplify your final loop with:
combinations = nchoosek(1:size(Fk, 2), 2);
for combination = combinations' %transpose to iterate over combinations
Aex = Fk(:, combination);
T = inv(Aex'*inv(V)*Aex)*(Aex'*inv(V)*r).^2
end
Pretty much what I gave you in the first place.
Josep
Josep le 5 Sep 2014
Thank you very much! :)

Connectez-vous pour commenter.

Plus de réponses (1)

dpb
dpb le 3 Sep 2014

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by