Given vector with N entries, generate all combinations with K entries such that K > N, vector entries can repeat
조회 수: 1 (최근 30일)
이전 댓글 표시
I'm writing a script to work some ideas I had with eigenvalues in a triangular matrix, and part of that is generating all the possible permutations of the eigenvalues in an arbitrarily sized matrix. To do this I want to generate vectors I can feed into the diag(v) function where v is composed solely of 1x1 symbolic variables.
For example: I have 2 symbolc variables a and b, that I want to feed into a 4x4 matrix so that I get all combinations of a and b across the main diagonal. This would create a matrix (or a set of vectors) that looks something like:
[a a a a
a a a b
a a b a
a b a a
a a b b
a b a b
a b b a
a b b b
b b b b
b b b a
b b a b
b a b b
b b a a
b a b a
b a a b
b a a a]
which I'll then be able to iterate over to feed into diag.
Thanks!
댓글 수: 0
채택된 답변
추가 답변 (2개)
Matt J
2023년 10월 20일
편집: Matt J
2023년 10월 20일
Starting with R2023a,
syms a b
k=4;
v=repmat( {[a,b]},1,k);
result=table2array(combinations(v{:}))
댓글 수: 4
Bruno Luong
2023년 10월 20일
편집: Bruno Luong
2023년 10월 20일
I prefer cell array for mixed data types (would not know if I ever use that use case), array on pure numerical data.
At least I want an option to do it. Table is NOT a serious computing data types in my opinion. Nobody really knows the internal structure and complexity of accessing data (what I know is row access is poor). I would not use it in any program excepted for importing data, and final reprentation for user interface.
Voss
2023년 10월 20일
syms a b
v = [a b];
n = numel(v);
k = 4;
result = v(dec2base(0:n^k-1,n)-'0'+1)
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Number Theory에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


