linear combination of vector and permutation
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Fidele Adanvo
am 3 Okt. 2022
Kommentiert: Stephen23
am 4 Okt. 2022
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 Kommentare
Akzeptierte Antwort
Torsten
am 3 Okt. 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 Kommentare
Matt J
am 4 Okt. 2022
Bearbeitet: Matt J
am 4 Okt. 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
Weitere Antworten (2)
James Tursa
am 4 Okt. 2022
Bearbeitet: James Tursa
am 4 Okt. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!