Creating a string with Permutation
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Chris Dan
am 15 Jul. 2022
Beantwortet: Voss
am 15 Jul. 2022
Hi,
I have a short question, I am creating a string with a loop but I cannot do the permutation/combination correctly
here is my code
Axes_name = {'sint0.2';'sint0.5';'sint0.7'};
fold_2 = {'BCA';'BPCA';'DLA';'DLCA'};
C_ext = nan*zeros(length(Axes_name),length(fold_2));
for i=1:length(Axes_name)
for j=1:length(fold_2)
leg{sub2ind(size(C_ext),i,j)} = [Axes_name{i} ' ' fold_2{j}];
end
end
I am trying to make combinations like this:
sint0.2 BCA
sint0.2 BPCA
sint0.2 DLA
sint0.2 DLCA
sint0.5 BCA
sint0.5 BCPA
sint0.5 DLA
sint0.5 DLCA
...
and so on, but i am not getting it correctly.Does any know what changes i should do
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (2)
Paul
am 15 Jul. 2022
Hi hazmah,
Is this what you're looking for?
Axes_name = string({'sint0.2';'sint0.5';'sint0.7'})
fold_2 = string({'BCA';'BPCA';'DLA';'DLCA'})
result = reshape(Axes_name.' + " " + fold_2,[],1)
0 Kommentare
Voss
am 15 Jul. 2022
Axes_name = {'sint0.2';'sint0.5';'sint0.7'};
fold_2 = {'BCA';'BPCA';'DLA';'DLCA'};
You can change the size of C_ext to be length(fold_2)-by-length(Axes_name), since you want to cycle through the fold_2 values first in leg. (Swap j and i where they're used in sub2ind as well.)
C_ext = nan*zeros(length(fold_2),length(Axes_name));
for i=1:length(Axes_name)
for j=1:length(fold_2)
leg{sub2ind(size(C_ext),j,i)} = [Axes_name{i} ' ' fold_2{j}];
end
end
leg = leg.'
However, you can create matrices of indices i and j using meshgrid or ndgrid, and construct leg at once using strcat:
[i,j] = meshgrid(1:numel(Axes_name),1:numel(fold_2));
leg = reshape(strcat(Axes_name(i),{' '},fold_2(j)),[],1)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Matrices and Arrays 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!