linear combination of vector and permutation
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi, i' m developing a program where I find myself with this problem that I couldn't solve nem with combntns(v,k) or with nchoosek .
Anyone here to help me?
Let A=[-1,1] and B=3
I need to find all possible combinations taking from B to B vector element A ( It can be with repetition of the vector element )
I have done it manually, but I need it automatically, or a Matlab function does it.
Let A and B the output of this function has to be:
Out=[-1,-1,-1;
-1,-1, 1
-1, 1,-1
-1, 1, 1
1,-1,-1
1,-1, 1
1, 1,-1
1, 1, 1],
0 commentaires
Réponse acceptée
Torsten
le 3 Oct 2022
values = [-1 1]; %// data
k = 3; %// data
n = numel(values); %// number of values
combs = values(dec2base(0:n^k-1,n)-'0'+1) %// generate all tuples
2 commentaires
Matt J
le 4 Oct 2022
Modifié(e) : Matt J
le 4 Oct 2022
This approach is rather slow, if that matters...
values = -2:2; %// data
k = 9;
timeit(@()version1(values,k))
timeit(@()version2(values,k))
function version1(values,k)
n = numel(values); %// number of values
combs = values(dec2base(0:n^k-1,n)-'0'+1); %// generate all tuples
end
function version2(A,B)
[Out{1:B}]=ndgrid(A);
Out=reshape( cat(B+1,Out{:}),[],B);
end
Plus de réponses (2)
James Tursa
le 4 Oct 2022
Modifié(e) : James Tursa
le 4 Oct 2022
Another way very similar to Torsten's method, limited to two desired values:
n = 3;
2*(dec2bin(0:2^n-1)-'0')-1
0 commentaires
Voir également
Catégories
En savoir plus sur Descriptive Statistics 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!