Repeat coordinates (arranged on the same y and different x) over different values of y
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi! I need to achieve this by knowing the 'green' coordinates ("row_c") and the repeat intervals ("val"):
I tried this way but I can only generate the first (red) line:
load val.mat
load row_c.mat
r_add = {};
for k = 1:width(val)
y_new = row_c(1,2) - val(1,k);
r = height(row_c);
repetition = repmat(y_new,r,1);
r_new = row_c;
r_new(:,2) = repetition;
r_add = [r_add;{r_new}];
end
r_add_mat = cell2mat(r_add);
figure
plot(row_c(:,1),row_c(:,2),'g.','Markersize',15);
hold on
plot(r_new(:,1),r_new(:,2),'r.','Markersize',15);
% plot(r_add_mat(:,1),r_add_mat(:,2),'m.','Markersize',10);
hold off
axis equal
set(gca, 'YDir','reverse')
EDIT: add files
0 Commenti
Risposta accettata
Voss
il 28 Ott 2023
Modificato: Voss
il 28 Ott 2023
load row_c
load val
I think this is what you're going for:
r_add = [];
r = height(row_c);
r_new = row_c;
for k = 1:numel(val)
r_new(:,2) = repmat(r_new(1,2)-val(1,k), r, 1);
r_add = [r_add; r_new];
end
figure
plot(row_c(:,1),row_c(:,2),'g.','Markersize',15);
hold on
plot(r_add(:,1),r_add(:,2),'r.','Markersize',15);
hold off
axis equal
set(gca, 'YDir','reverse')
xlim([-90 -85])
ylim([104 108])
An alternative is:
[x,y] = meshgrid(row_c(:,1), row_c(1,2)-[0 cumsum(val)]);
figure
plot(x(1,:),y(1,:),'g.','Markersize',15);
hold on
plot(reshape(x(2:end,:),[],1),reshape(y(2:end,:),[],1),'r.','Markersize',15);
hold off
axis equal
set(gca, 'YDir','reverse')
xlim([-90 -85])
ylim([104 108])
0 Commenti
Vedere anche
Categorie
Scopri di più su Spline Postprocessing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!