MATLAB How can I fix the error message in my matlab plotting program?

  • Thread starter Thread starter mooncather
  • Start date Start date
  • Tags Tags
    Matlab Plotting
AI Thread Summary
The user is encountering an error in MATLAB while trying to plot a trajectory for a class assignment. The error message indicates an invalid first data argument in the plot function. The user’s code includes several calculations for projectile motion, but the plot command is incorrectly formatted. Specifically, the command `plot('b-')` does not specify any data to plot, which is why the error occurs. The correct usage of the plot function requires at least two arguments: the x and y data to be plotted. The user is advised to refer to MATLAB's help documentation for proper syntax and examples of the plot function to resolve the issue and successfully visualize the trajectory of the object.
mooncather
Messages
1
Reaction score
0
Okay so I am really new to matlab, I mean REALLY new. I am trying to write a program for one of my classes but I am having some trouble. I keep getting this error message:

? Error using ==> plot
Invalid first data argument

Error in ==> guessTraj at 89
plot('b-')


And here is my code:



Code:
function [output]= guessTraj(target_dis)

target_dis=input('distance :');

error = sqrt(target_dis);

real = isreal(error);

if real == 0 & isnumeric(target)== 0

output = 4

disp('Invalid Distance')

end



angle = input('Please enter the angle in degrees:');

radians = angle * (3.14159/180);

velocity = input('Please enter the velocity the ball is thrown:');

vel_error = sqrt(velocity);

vel_check = isreal(vel_error);



if vel_check == 0

disp('Invalid Velocity')

end



VY = velocity * sin(radians) ;

VX = velocity * cos(radians) ;

t = (2*velocity)/9.81 ;

x_dis = VX * t ;

y_dis = VY * t ;



H1 = target_dis + 2.5 ;

H2 = target_dis - 2.5 ;



x = 0:x_dis/50:x_dis;

plot(x,x_dis,target_dis,0,'mo')

xlabel ('Distance the ball Traveled')

ylabel ('Height of the ball')

legend ('Trajectory of Ball', 'Location', 'SouthEastOutside')

hold on



timeVector = 0:t/50:t;

plot('b-')

if x_dis <= H1 && x_dis >= H2

title('The ball hit the target')

output = 1;

disp('1. The ball hit the target!')



elseif x_dis < H1

title('The ball was underthrown')

under = target_dis-x_dis;

output = 2;

disp('2. The ball was underthrown')



elseif x_dis > H2

title('The ball was overthrown')

over = x_dis-target_dis;

output = 3;

disp('3. The ball was overthrown')

end

I'm not sure what I'm doing wrong. I want to plot the path of the object... What am I doing wrong?

Thanks so much!
Code:
 
Physics news on Phys.org
plot('b-') is not a correct use of plot. It just tells MATLAB to plot using a blue line but doesn't tell it what it should plot. What exactly do you want to do with plot('b-') ?
 
>> help plot
 

Similar threads

Replies
2
Views
2K
Replies
2
Views
3K
Replies
7
Views
3K
Replies
6
Views
2K
Replies
1
Views
3K
Replies
2
Views
2K
Back
Top