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

### Edvardas (view profile)

on 22 Oct 2012

Hello,

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;
```
```A=x;
```
```B=x-0.76;
```
```C=x-0.99;
```
```if A>0
```
`      A=1;`
```else
```
`      A=0;`
```end
```
```if B>0
```
`      B=1;`
```else
```
`      B=0; `
```end
```
```if C>0
```
`      C=1;`
```else
```
`      C=0;`
```end
```
```V=R1h*A+R2h*B+Th*C;
```
```plot(x, V);
```
```end
```

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!

Thanks!

## Products

No products are associated with this question.

### Walter Roberson (view profile)

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);
```

Edvardas

### Edvardas (view profile)

on 22 Oct 2012

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.

### Matt Fig (view profile)

on 22 Oct 2012
Edited by Matt Fig

### Matt Fig (view profile)

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;
plot(x,Untitled2(x))
```

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!

Edvardas

### Edvardas (view profile)

on 22 Oct 2012

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!

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