Cell array of coordinates from two vectors
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
LC
el 5 de Oct. de 2018
Comentada: shashikiran mudavath
el 21 de Sept. de 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.
Respuesta aceptada
Stephen23
el 5 de Oct. de 2018
Editada: Stephen23
el 5 de Oct. de 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 comentarios
Más respuestas (1)
Raghunandan V
el 5 de Oct. de 2018
you should you at least one nested loop
for k=1:length(X)
z=[X(k) Y'];
perms(Z);
end
0 comentarios
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!