0:00

When developing learning algorithms, very

often a few simple plots

can give you a better

sense of what the algorithm

is doing and just sanity check

that everything is going okay

and the algorithms doing what is supposed to.

For example, in an earlier

video, I talked about how

plotting the cost function J

of theta can help you

make sure that gradient descent is converging.

Often, plots of the data

or of all the learning algorithm outputs

will also give you ideas

for how to improve your learning algorithm.

Fortunately, Octave has very

simple tools to generate lots

of different plots and when

I use learning algorithms, I find

that plotting the data, plotting

the learning algorithm and so

on are often an important

part of how I get

ideas for improving the

algorithms and in this video,

I'd like to show you some

of these Octave tools for plotting and visualizing your data.

1:12

if I want to plot the sine function, it's very easy.

I just type plot T comma Y

1 and hit enter.

And up comes this plot

where the horizontal axis is

the T variable and the vertical

axis is y1, which

is the sine you saw in the function that we just computed.

Let's set y2 to be

equal to the cosine

of two pi, four T, like so.

And if I plot

T comma y2, what octave

will I do is I'll take my

sine plot and it

will replace with this cosine

function and now, you know, cosine of xi of 1.

Now, what if I

want to have both

the sine and the cosine plots on top of each other?

What I'm going to do is I'm

going to type plot t,y1.

So here's my sine function, and then

I'm going to use the function hold on.

And what hold does it closes

octaves to now

figures on top of the

old one and let

me now plot t y2.

I'm going to plot the cosine function in a different color.

So, let me put there

r in quotation marks there

and instead of replacing

the current figure, I'll plot the

cosine function on top and

the r indicates the what is an event color.

And here additional commands - x

label times, to label the X axis, or the horizontal axis.

And Y label values A,

to label the vertical axis value,

and I can also

2:54

label my two lines

with this command: legend sine cosine

and this puts this

legend up on the upper

right showing what the 2

lines are, and finally title

my plot is the title at the top of this figure.

Lastly, if you want to save

this figure, you type print -dpng

myplot

.png.

So PNG is a graphics

file format, and if you

do this it will let you save this as a file.

If I do that,

let me actually change directory to,

let's see, like

that, and then I will print that out.

So this will take a

while depending on how

your Octave configuration is setup,

may take a few seconds, but change

directory to my desktop and Octave

is now taking a few seconds to save this.

3:54

If I now go to my desktop, Let's hide these windows.

Here's myplot.png

which Octave has saved, and you

know, there's the figure saved as the PNG file.

Octave can save thousand other formats as well.

So, you can type help plot,

if you want to see the

other file formats, rather than

PNG, that you can save

figures in.

And lastly, if you want

to get rid of the plot, the

close command causes the figure to go away.

As I figure if I type

close, that figure just

disappeared from my desktop.

Octave also lets you specify a figure and numbers.

You type figure 1 plots t, y1.

That starts up

first figure, and that plots t, y1.

And then if you want a second figure, you specify a different figure number.

So figure two, plot t,

y2 like so, and

now on my desktop, I actually have 2 figures.

So, figure 1 and figure

2 thus 1 plotting the sine

function, 1 plotting the cosine function.

Here's one other neat command that

I often use, which is the subplot command.

So, we're going to use subplot 1 2 1.

What it does it sub-divides

the plot into a

5:49

Well, throw in y2 in

the right hand side, or in the second element.

And last command, you can

also change the axis scales

and change axis these to 1.51

minus 1 1 and this

sets the x range

and y range for the

figure on the right,

and concretely, it assess the horizontal

major values in the figure

on the right to make sure 0.5

to 1, and the vertical

axis values use the range from minus one to one.

And, you know, you don't need to memorize all these commands.

If you ever need to

change the access or you

need to know is that, you know, there's an

access command and you can

already get the details

from the usual octave help command.

Finally, just a couple last

commands CLF clear is

a figure and here's one unique trait.

Let's set a to be equal

to a 5 by 5

magic squares a. So, a

is now this 5 by 5

matrix does a neat

trick that I sometimes use to

visualize the matrix, which is

I can use image sc

of a what this will

do is plot a five

by five matrix, a five by five grid of color.

where the different colors correspond to

the different values in the A matrix.

So concretely, I can also do color bar.

Let me use a

more sophisticated command, and image sc

A color bar

color map gray.

This is actually running three commands at a time.

I'm running image sc then running

color bar, then running color map gray.

And what this does, is it sets

a color map, so a

gray color map, and on the

right it also puts in this color bar.

And so this color bar

shows what the different shades of color correspond to.

Concretely, the upper left

element of the A matrix

is 17, and so that corresponds

to kind of a mint shade of gray.

Whereas in contrast the second

element of A--sort of the

1 2 element of A--is 24.

Right, so it's A 1 2 is 24.

So that corresponds to

this square out here, which is

nearly a shade of white.

And the small value, say

A--what is that? A

4 5, you know, is a value

3 over here that corresponds--

you can see on my color bar

that it corresponds to a

much darker shade in this image.

So here's another example,

I can plot a larger, you

know, here's a magic 15 that

gives you a 15 by 15

magic square and this

gives me a plot of what

my 15 by 15 magic squares values looks like.

And finally to wrap

up this video, what you've

seen me do here is

use comma chaining of function calls.

Here's how you actually do this.

If I type A equals

1, B equals 2, C equals

3, and hit Enter, then

this is actually carrying out

three commands at the same time.

Or really carrying out three

commands, one after another,

and it prints out all three results.

And this is a lot like

A equals 1, B equals

2, C equals 3, except

that if I use semicolons instead

of a comma, it doesn't print out anything.

So, this, you know,

this thing here we call comma

chaining of commands, or comma chaining of function calls.

And, it's just another

convenient way in Octave to

put multiple commands like image sc

color bar, colon map

to put multi-commands on the same line.

So, that's it.

You now know how to plot

different figures and octave, and

in next video the

next main piece that I want

to tell you about is how to

write control statements like if,

while, for statements and

octave as well as hard to define and use functions