MATLAB Answers


How to plot several different points from an equation? (Macaulay's notation)

Asked by Edvardas
on 22 Oct 2012


I am fairly new to Matlab and thought of using it for one project to plot some graphs. Problem is it requires Macaulay's notation. At the moment I've come up with a function file like this:

function [ V ] = Untitled2( x )
%UNTITLED2 Summary of this function goes here
%   Detailed explanation goes here;
R1h= 632.568;
R2h= -2722.793;
Th= -2090.455;
if A>0 
if B>0 
if C>0 
plot(x, V);

Now, it gives the correct values for the shear force V whenever I add a specific coordinate x, however I can't think of a way for it to plot all the points. To be more precise I need it to be at V= 632.568 up until x=0.76, then it should go down straight to V= -2090.455 up until x=0.99 and then return to 0.

If any advice could be given about how to plot such a graph (or make better use of Matlab for Macaulay's notation) I would really appreciate!




No products are associated with this question.

2 Answers

Answer by Walter Roberson
on 22 Oct 2012

Remove the plot() statement. Then in a new driver routine use

V = arrayfun(@Untitled2, x);   %x can be a vector
plot(x, V);

  1 Comment

Thank you for such a quick reply!

It seemed to have worked halfway only though, the figure now seems to show the correct range of numbers on x and V axis, however it doesn't draw the graph itself. (Not sure if relevant, but used x as a matrix 0:0.01:0.99). So a little bit confused now, can anything be done about that?

Edit: Just noticed the negative x values, not sure why they're there, considering the matrix I added was from 0 to 0.99.

Answer by Matt Fig
on 22 Oct 2012
Edited by Matt Fig
on 22 Oct 2012

function [ V ] = Untitled2(x)
V = zeros(size(x));
V(x<=.76) = 632.568;
V(x>.76 & x<=.99) = -2090.455;

Now, from the command line:

x = 0:.001:1.5;

Also, why not name your function some useful name, like:

function V = shearforce(x)
V = zeros(size(x));
V(x<=.76) = 632.568;
V(x>.76 & x<=.99) = -2090.455;

This 'Untitled2' business is just awful!

  1 Comment

Thanks! Works like a charm for shear force. Was hoping that it would be possible to do with my initial try, as that would be quite easy to transform into a bending moment function as well. Will try to figure out something along this path as well :)

And yes, good point with the naming, got too enthusiastic with Matlab whilst trying to figure out how to do the function, completely forgot about renaming!

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!