hi everybody , i have a question please , if i have X=[1:10] and Y=[-5:5] and i want to have all the point of the plane (x,y) , what can i do in matlab to extract this point to use it
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
mina massoud
am 25 Feb. 2019
Bearbeitet: Jan
am 27 Feb. 2019
X=[1:10];
Y=[-5:5];
for i=1:10
for j=1:10
3 Kommentare
Akzeptierte Antwort
James Tursa
am 25 Feb. 2019
Bearbeitet: James Tursa
am 25 Feb. 2019
Does this do what you want?
[x,y] = meshgrid(X,Y);
result = [x(:),y(:)];
Then iterate over the rows of result.
Or you can just use your double for loop, and have
for i=1:numel(X)
for j=1:numel(Y)
point = [X(i),Y(j)];
etc.
6 Kommentare
James Tursa
am 27 Feb. 2019
You didn't pre-allocate TgT to the dimensions I specified. You have this:
TgT=zeros(length(x),length(y))
But I have this:
tgt = zeros(numel(x)*numel(y),2);
Jan
am 27 Feb. 2019
Bearbeitet: Jan
am 27 Feb. 2019
@mina: "it didnt work" is not useful to explain a problem. Do you get an error message (than post a complete copy) or do the result differ from your expectation (then explain both).
clear all; clc is called "cargo cult programming": It does not help to solve any problem. All it does is to waste processing time here.
A simpler method instead of the loops:
x = 0:intx:D_x; % No need for brackets
y = -D_y/2:inty:D_y/2; % x and y are vectors already
nx = numel(x);
ny = numel(y);
TgT = [replem(x.', ny, 1), repmat(y.', nx, 1)];
Weitere Antworten (1)
madhan ravi
am 25 Feb. 2019
I am not sure I fully understand but see if it does what you want
[x,y]=ndgrid(X,Y);
[x(:) y(:)] % after this it’s just matrix manipulation
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!