本文是台大郭彦甫的MATLAB教程P2~P4的学习笔记,包括代码和课后练习。
目录
11.Array Manipulation(数组操作四则运算)
12.some special matrix(一些特殊矩阵)
5.pre-allocating space to variables(为变量预分配空间)
8.tips for script writing(写脚本技巧)
9.scripts vs functions(脚本 vs 函数)编辑
10. user define functions(用户定义函数)
11.functions with multiple inputs and outputs(有多个输入和输出的函数)
14. function handles(函数句柄,类似c语言指针)
5.logical operations and assignments(逻辑运算和赋值)
8.练习:找到Ann Lane的第三个成绩90.显然这个问题不难。
13. accessing cell array(获取元组)
24. Getting text in excel spreadsheet
一.基本操作与矩阵输入
1.简单习题

1.
>> cos(((1+2+3+4)^3/5)^0.5)
ans =
-0.0050
2.
>> sin(sqrt(pi))+log(tan(1))
ans =
1.4228
3.
>> 2^(3.5*1.7)
ans =
61.8199
4.
>> exp(sin(10))
ans =
0.5804
2.embedding functions(嵌入函数)
公式太长可以使用变量存储一部分,然后运算。

>> cos(pi)
ans =
-1
>> sin(ans)
ans =
-0.8415
>> sin(cos(pi))
ans =
-0.8415
3.varibles(变量)
①变量名称大小写有区别
②变量开头不可以有字母,非开头可以有数字。

查看变量类型:双击工作区的变量,显示的类型。

或者 whose(who查看现有变量,whos查看变量相关信息)

特殊变量--关键字

answer:答案,i.j:复数,inf:无限大,eps:很小的数,NaN:非数,pi:圆周率

查看有哪些keywords

函数转换为变量:对cos进行字符串赋值,输出对应的第八个字符。此时变量的优先级大于函数。
>> cos='This string.';
>> cos(8)
ans =
'r'
消除变量,单个clear把工作区内容全部清空(谨慎清空)

4.format(格式)
根据不同类型输出不同的小数长度

long:很长,shortE、longE:科学符号(e+00是10的0次方),bank:两位小数点,hex:16进制,rat:转换为有理数

练习题:

不难,显然是1,d

5.命令行终端
代码后加分号不返回结果,按上箭头返回之前的指令

clc:清空屏幕
6.数组(向量和矩阵)
行向量(空格间隔),列向量(分号间隔)。
a*b内积,b*a外积。

输入一个矩阵,空格间隔,分号换行。
>> A=[1 21 6; 5 17 9; 31 2 7]
A =
1 21 6
5 17 9
31 2 7
7.矩阵索引
输出行向量或者列向量,直接输出第几个就可以。
当想查看矩阵的数值时A(X,Y):A为矩阵,X为第X行,Y为第Y列,也就是第X行的第Y个。如果用A(X)查找,遵循从上到下从左到右原则,先查左边第一个列向量,再查左边第二个列向量。

依然输入以下5个指令,观察得到的结果。

需要强调的是,第五个指令的第一个中括号代表的是行向量,第二个中括号代表的是列向量。也就是说:第一行和第三行、第一列和第三列的值,得出来的就是一个二阶矩阵。

8.矩阵替换练习

解题思路:第二个矩阵很好替换,第三个矩阵博主用了上述方法快速的对四个值进行了替换。删除第三行只需要把第三行的值默认为空即可。

9.colon operator(冒号)
A=[j:i:k] j为起始值,i为等差,k为结尾数字。如果等差为1,省掉i即可。


其中,最后一个B的类型是double,str的类型是str

10. Array Concatenation(数组连接)
F=[A B]是行不变,列增加。F=[A;B]是列不变,行增加。

11.Array Manipulation(数组操作四则运算)

两个矩阵运算如下:

矩阵和常数运算简单,不做赘述。其中A^a是A*A而非A.^a,A'是沿对角线交换,即为转置。
12.some special matrix(一些特殊矩阵)
linspace:均分计算指令。linspace(x,y,z)起始为x,终点为y,中间元素个数为z个。
eye(n):对角线为1的nxn矩阵。
zeros(n1.n2):元素全为0的n1xn2矩阵。
diag():对角线为已知数字的矩阵。
rand():随机矩阵。

13.some matrix related functions(一些矩阵相关函数)
max(A)查找A每一个列向量的最大值,返回的是一个行向量,min(A)、sum(A)、mean(A)同理。max(max(A))返回的是一个常数。
sort(A)针对每一个列向量进行排序,sortrows(A)每一行以第一个列向量的大小顺序变动.
size(A)就是n*n,length(A)是行向量和列向量哪个大就返回哪个数值。find(A==5),A第几个值为5.



二 结构化程式与自定义函数
1.MATLAB Script(matlab脚本)
撰写第一个sin绘制图的脚本,运行结果是一个动图。
for i=1:10
x=linspace(0,10,101)
plot(x,sin(x+i));
print(gcf,'-deps',strcat('plot',num2str(i),'.ps'));
end

matlab %是注释,%%是分节,讲解了简单的debug。script可以保存,命令行打完就不见了,建议用script。
2.script flow(脚本流程)
从上至下
结构化编程技术(structured programming)

不同是~=而非!=
语法都需要配合结束指令
在script运行右边代码,结果出现在命令行窗口。


最低0.47元/天 解锁文章
3624

被折叠的 条评论
为什么被折叠?



