吴恩达机器学习——编程语言Matlab基本操作
Choose which language to learn and why?
选择什么语言去学习?为什么?
首先推荐Octave,简单方便,并且开源免费。
Matlab也非常的优秀,但是它并不是每个人都买得起的(手动滑稽),如果你能够使用它,那么建议使用matlab。
Python、numpy、R语言,也有很多人选择,但开发较慢。
matlab学习
注释:
百分号后面的内容都是被注释的内容
注释掉百分号后面(同一行)的内容,不参与运行
创建一个矩阵
:
分号代表下一行的数据,A表示一个变量名,这是一个赋值表达式,将一个矩阵赋值给A
矩阵(行:列)索引某个位置的值:
实例:
矩阵(行,:)
返回该行的所有数据
实例:
矩阵(start:end)
按照列的顺序返回第start的值到第end的值
实例:
矩阵(:,列)
返回指定列的所有内容
实例:
Size()方法
Size(一个矩阵) 返回的是矩阵的规模,即行×列
注意:你会看到每执行一行指令都会打印出一定的结果,如果你不想让它显示如
可以在每行代码加一个;表示结束
矩阵([ num ……],2)= [2*num ……]
实例:
矩阵([ num1 num2],num3)
返回行数为num1或者为num2,列数为num3的值:
实例:
同理进行进一步的扩展:
即返回第一行和第二行的所有数据
将第二列的数据都进行重新赋值
在原来的基础上,又增加了一列数据,同理:
矩阵(:)
实例
将矩阵中的所有值排列在一列
矩阵 = [矩阵A 矩阵B](行数相同) or 矩阵 = [矩阵A,矩阵B]
实例:
矩阵 = [矩阵A ; 矩阵B](列数相同)
实例:
Size(A,num)
观察上式可以大概推测的出来,size(A,num)表示矩阵中第num个数的值,排列顺序是从左到右,从上到下依次排列。
如果num大于它的值的个数呢?以下就是我测试的结果:
即结果始终为1,如果num≤0,则会报错
有关向量的操作:
初始化一个向量:
变量名 = 向量
Length(向量名):返回向量的最大维度
观察可得,length(矩阵)返回最大的维度(不考虑行和列)
Pwd
输入pwd,返回软件安装路径
Cd
Cd ‘路径名’ :改变当前目录位置
Ls:
Ls 列出当前目录的所有文件
加载文件(例如:a.txt)
Load a.txt
也可以 load(‘a.txt’)效果如下:
没有报错,就说明成功读取文件内容
Who命令:
展示当前所有变量
实例:
Whos命令
展现出所有变量,及更多具体的参数:
实例:
具体数据(吴恩达老师课程的featuresX和priceY的数据内容:)
squares |
room |
price |
2104 |
3 |
3999 |
1600 |
3 |
3299 |
2400 |
3 |
3690 |
1416 |
2 |
2320 |
3000 |
4 |
5399 |
1985 |
4 |
2999 |
1534 |
3 |
3149 |
1427 |
3 |
1989 |
1380 |
3 |
2120 |
1494 |
3 |
2425 |
1940 |
4 |
2399 |
2000 |
3 |
3470 |
1890 |
3 |
3299 |
4478 |
5 |
6999 |
1268 |
3 |
2599 |
1437 |
3 |
4499 |
1239 |
3 |
1509 |
2132 |
4 |
1667 |
4215 |
4 |
5948 |
2162 |
4 |
4718 |
1664 |
2 |
3932 |
2238 |
3 |
2011 |
2567 |
4 |
4538 |
1200 |
3 |
2251 |
852 |
2 |
2617 |
1852 |
4 |
4084 |
1203 |
3 |
3523 |
Clear命令:
清楚变量
Clear 变量名
这是工作域的变量,共有三个变量:
执行命令,清除ans变量后的运行结果:
清除所有变量:
Clear
V = priceY(1:10)
变量 = 向量(start:end)将部分内容截取赋值给变量,start和end指向的内容都会被赋值
写入文件:
Save 路径名(文件格式:mat) 变量(二进制方式存储)
将变量中的数据保存到路径指向的文件中:(存储为二进制格式)
实例:
无报错则执行成功
无压缩格式:
Save 路径名(文件格式:txt) 变量 -编码格式(例如:UTF-8)