Setting up and calculating using an array and ginput?

1 Ansicht (letzte 30 Tage)
DocD
DocD am 13 Dez. 2017
Kommentiert: DocD am 15 Dez. 2017
Hi I'm trying to get my code to calculate the difference between x, y coordinates held in an array and that acquired from ginput.
So I've got two x, y ginputs that I want to calculate the difference between the first and second pair of values in my array called "ActualValues", so in this case I'd like to get the difference between ginput1 and 124, 93 and the difference between ginput2 and 109, 77.
How do I do this?
I'm using the following code:
clear clc close all
Map=imread('Map.Jpg'); imshow(Map); hold on;
ActualValues = [124 93; 109 77; 125 83; 117 75; 122 80]
uiwait(msgbox('Choose Point A')); [x,y] = ginput(1); hline = plot(x,y,'r+', 'MarkerSize', 50);
A = ginput(1);
uiwait(msgbox('Choose Point B')); delete(hline); [x,y] = ginput(2); plot(x,y,'r+', 'MarkerSize', 50); B = ginput(1);
disp ('Values:') disp(A); disp(B);
Would really appreciate some help, although I understand a minus operation should do the trick, I'm having difficulty referencing the ginputs and the array accordingly.
Many Thanks.

Akzeptierte Antwort

YT
YT am 14 Dez. 2017
Bearbeitet: YT am 14 Dez. 2017
Okay I did a little bit of adjustment to your code, but I think this is what you want to achieve
clear all;
close all;
Map = imread('Map.Jpg');
imshow(Map);
hold on;
uiwait(msgbox('Choose Point A'));
A = ginput(1);
hline = plot(A(1),A(2),'r+', 'MarkerSize', 50);
uiwait(msgbox('Choose Point B'));
delete(hline);
B = ginput(1);
plot(B(1),B(2),'r+', 'MarkerSize', 50);
disp(['Input 1; (x,y) = (' num2str(A(1)) ',' num2str(A(2)) ')'])
disp(['Input 2; (x,y) = (' num2str(B(1)) ',' num2str(B(2)) ')'])
diffBA = B-A; %difference B and A
disp(['Difference; (x,y) = (' num2str(diffBA(1)) ',' num2str(diffBA(2)) ')']);
I noticed that you didn't quite know how to display variables yet. I think you can figure it out yourself from the code above, but here's some clarification:
A(1) %x-coord. 1
A(2) %y-coord. 1
num2str(A(1)) %creates string from the numeric value for display purposes
disp(['...' here-your-string variable]) %use square brackets if you want to use variables in your disp()

Weitere Antworten (0)

Kategorien

Mehr zu Data Exploration 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!

Translated by