吴恩达机器学习——matlab控制语句学习

本文详细介绍了吴恩达机器学习课程中Matlab的基本控制语句学习,包括zeros函数、for循环、while循环、if-else语句的使用方法,以及如何创建和调用函数,特别强调了在Windows系统下创建.m文件的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

吴恩达机器学习——matlab控制语句学习

zeros()

zero(num1,num2)绘制一个num1×num2的矩阵,这个矩阵每个元素的值都为0

For循环

实例:

v = 1:1:10

for i = 1:10

    v(i) = i^(2);

end

 

运行结果:

 

for i = 1:10

等于C语言中的for(int i=1;i<=10;i++)

End语句表示for循环的结束

 

 indices = 1:10;

 

给indices赋值为1到10

for i = indices,

disp(i);

end;

依次遍历indices的值,然后用disp(i)函数,输出i的值。

 

while

i = 1;

while i<= 5;

v(i) = 100;

i = i+1;

end;

设置i=1,当i小于等于5时,设置数组v(i)的值为100,i自增1。当while条件不满足时,结束循环。

 

运行结果

 

i = 1;

while true, i =i+1;

if i==10,break;

end;

end;

设置变量i=1,while true,(判断永远为真),i自增。

if语句,如果i等于10,break语句可以结束循环。

第一个end结束的是if语句,第二个end结束的是while语句。

 

运行结果:

i在不断执行的过程中,不断自增,直到满足if的判断条件,执行if语句的break.

 

If——else语句

if i==1,

disp("the number is one");

elseif i==2,

disp("the number is two");

else disp("it is not one or two");

end;

运行结果:

这是一个选择语句,逗号表示未结束,可以分成三段进行看。

第一段是当i等于1时,控制器将会打印出Are you joking?(注意判断语句即i==1后面是个逗号)

第二段是当i等于2时(不满足第一条,即当i等于1则会进行第二条的判断)

当以上两个都不满足时,执行disp("it is not one or two");

 

 

编写函数

编写函数时,要单独创建.m文件,同时如果你使用的是windows系统的话,建议不要用记事本打开.m文件,建议使用写字板打开,因为记事本可能会导致奇怪的间距。

 

创建函数:

实例:

Function name(返回的参数) = 函数名(参数)

执行内容

 

如:

Function y = squareThisNumberr(x)

Y = x^2;

 

点击new进行创建.m文件,保存然后命令以后,开始编写函数,函数名要和文件名一致。

 

引用创建的函数:

 

当你创建的好函数以后,通过调用函数名,然后传递参数的值就可以进行运算,返回的结果就是运算的结果。

如上,就是我调用我自己编写的test()函数后的结果。

 

 

如果当你引用函数,软件报错,这说明软件并不知道文件所在的目录,有以下两种解决办法:

1、可以通过cd把当前目录转换都文件所在的目录。

2、addpath(路径);通过这个方法,添加该路径到软件的搜索路径,则在调用函数时,软件会到这个路径进行搜索。

 

返回的值的问题,matlab运行你定义的变量返回多个值

比如下面这个实例:

function [y1,y2] = test(x)

y1 = x^2;

y2 = x^3;

这个实例就定义了一个函数,返回了y1和y2两个值。

在运行这个函数的时候,要设定相同个数的变量去接收返回的值。(如下图所示)

 

如果只有一个变量去接收结果呢?

  

 

如上所示共三种情况:

(1)[,b] = test(9),按照变量对应的函数的返回结果所规定的运算方法,b返回的是y2运算结果的值

(2)[a,] = test(2)得到的是y1的值

(3)如果只设置一个变量,则会得到的是第一个y1的值,即第一个位置的结果。

 

自定义一个代价函数:

function J = test(X,y,theta)



m = size(X,1);

predictions = X*theta;

sqrErrors = (predictions -y).^2;

J = 1/(2*m)*sum(sqrErrors);

依次可以看出,m为样本个数,即x的行数

SqrErrors则为方差

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值