Cell array of coordinates from two vectors
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
LC
am 5 Okt. 2018
Kommentiert: shashikiran mudavath
am 21 Sep. 2020
I have two vectors, one with 119 X values and a one with 102 Y values. I'm trying to work out a way to combine these to create to all possible unique sets of coordinates (12,138 unique coordinates). I could use two nested for loops to do it, but it's very slow. I'm struggling to find if theres any combination of matlab functions that could achieve this.
Akzeptierte Antwort
Stephen23
am 5 Okt. 2018
Bearbeitet: Stephen23
am 5 Okt. 2018
>> X = randi(999,119,1); % must be column vector
>> Y = randi(999,102,1); % must be column vector
>> [idx,idy] = ndgrid(1:numel(X),1:numel(Y));
>> M = [X(idx(:)),Y(idy(:))];
>> size(M)
ans =
12138 2
Here is a simpler example:
>> X = (1:5).';
>> Y = (6:9).';
>> [idx,idy] = ndgrid(1:numel(X),1:numel(Y));
>> M = [X(idx(:)),Y(idy(:))];
>> M
M =
1 6
2 6
3 6
4 6
5 6
1 7
2 7
3 7
4 7
5 7
1 8
2 8
3 8
4 8
5 8
1 9
2 9
3 9
4 9
5 9
2 Kommentare
Weitere Antworten (1)
Raghunandan V
am 5 Okt. 2018
you should you at least one nested loop
for k=1:length(X)
z=[X(k) Y'];
perms(Z);
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements 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!