@[TOC]matlab日记Re0
matlab学习日记Re0 (一)
Onramp course 2.1 Entering Commands
- =为赋值语句
- 可以使用m=m+1ory=m/2 赋值
- 使用上下方向键可以在命令栏切换之前的语句
- 与变量1相关的变量2的赋值改变后matlab不会rerun code,得到新的变量1的值,需要重新在命令栏输入变量1的赋值语句
Onramp course 2.2 Naming Variables
- matlab只接受由字母,数字和_组成的变量名
Onramp course 2.3 Saving and Loading Variables
- 使用save命令+文件名来保存workspace的数据
- 使用clear命令来清除workspace
- 使用load命令来载入数据至workspace
- 在命令栏直接输入变量名可以在命令窗口展示变量
- 使用clc命令来清除命令窗口
- 对于多个变量,在使用load命令时可以在变量名后加上其中的某个变量来只载入单个变量,例如load data m,save命令同理
Onramp course 2.4 Using Built-in Functions and Variabls
- matlab内置了一些常数,例如pi
- matlab内置了一些函数,例如abs(计算绝对值),eig(计算eigenvalue),使用内置函数时,用()确定输入的变量或数字
- 使用format long或者format short可以改变命令窗口显示的数字位数
Onramp course 3.2 The MATLAB Editor
- 在editor中输入code时,workspace和command window可能被最小化,点击右侧的workspace和底部的command window即可恢复
Onramp course 3.3 Running the Scripts
- 使用Run Section功能来run部分code,使用Text和Code来切换输入格式
Onramp course 4.1 Manually Entering Arrays
- 使用[]来输入矩阵,如果用,或者space来隔开矩阵中的元素,则生成行矩阵,例如x=[7,9],如果用;隔开元素,则生成列矩阵,例如x=[7;9]。如果同时使用,和;则生成矩阵,例如x=[7,8;9,10]
- 在[]内可以使用计算符号和函数,例如x=[sqrt(10),pi^2]
- 在一个矩阵中即使混合使用,space也不会影响matlab输出矩阵
Onramp course 4.2 Creating Evenly-Spaced Vectors
- 使用:可以实现输入等间距矩阵,例如输入x=1:4将输出x=[1 2 3 4]
- :默认间距为1,可以通过在中间插入第三个数字来实现自定义间距,例如输入x=1:2:5,则输出x=[1 3 5], 输入x=1:0.5:3,则输出x=[1 1.5 2 2.5 3]
- 使用linspace函数可以实现在已知元素数目的情况下的等间距矩阵,例如输入x=linspace(1,10,5),1表示起始数字为1,10表示最末数字为10,5则表示共有5个元素,输出为x=(1 3.25 5.5 7.75 10)
- 使用’符号来转置矩阵,例如输入x=x’,则会将3中的行矩阵转置为列矩阵,‘也可以与:组合使用,例如输入x=(1:2:5)’,则会输出一个起始数字为1,最末数字为5,间距为2的列矩阵
对于已知间距的情况下,使用:方便一些,对于未知间距,例如包含无理数的情况下,使用linspace更方便一些
Onramp course 4.3 Array Creation Functions
- matlab中一些函数可以实现生成常用矩阵,例如rand函数,输入x=rand(5),会输出一个每个元素都属随机数的5 * 5的矩阵,输入x=rand(5,1)则会输出一个5 * 1的随机矩阵
- zeros函数可以实现输出元素都为0的矩阵,例如输入x=zeros(6,3),则会输出一个6 * 3的零矩阵
- 使用size函数可以得到矩阵的行数和列数,也可以用于生成矩阵,例如输入size(x),将会输出ans=6 3,输入rand(size(x)),则会输出一个6 * 3的随机矩阵
Onramp course 5.1 Indexing into Arrays
- 对于一个矩阵A,输入x=A(5,2)可以将A矩阵中第五行,第二列的元素提取出来并赋值给x,输入x=A(end,2),则会将A矩阵中最后一行第二列的元素赋值给x,输入x=(end-1,2),则会将倒数第二行第二列的元素赋值给x,如果只输入一个数字,matlab会从第一列开始往下寻找,直到输入的值,例如输入x=A(8),假如A矩阵只有7行,那么赋值给x的时第一行第二列的元素,括号里同样可以是另一个变量,例如可以输入x=A(y)
Onramp course 5.2 Extracting Multiple Elements
- 使用:可以输出整列元素,例如输入x=A(:,2),会输出A矩阵第二列的所有元素,输入 x=A(2,:)则输出A矩阵第二行的所有元素,输入x=A(1:end-1,:),输出A矩阵第一行至倒数第二行的所有元素
- 对于行向量或者列向量(只有一行或一列的矩阵),输入单个数字则输出对应位置的元素,同样可以使用:来输出多个元素,对于输出不连续变量,可以输入x=V([1 3 6]),输出V向量中第一,第三,第六个元素
Onramp course 5.3 Changing Values in Arrays
- 可以对向量或矩阵中的单个元素赋值,例如V(2)=3,V(2)=W(4),A(:,1)=A(:,2)分别表示将3赋值给向量V中的第二个元素,将向量W中的第四个元素赋值给V向量中的第二个元素,将矩阵A第二列的元素赋值给矩阵A中的第一列元素
Onramp course 6.1 Performing Array Operations on Vectors
- matlab中,可以对向量中每一个元素同时进行运算,例如r=v+2, w=v/2, x=v1+v2分别表示对v向量中每一个元素加2并赋值给r,对v向量中每一个元素除以2并赋值给w,将v1向量和v2向量相加并赋值给x
- 也可以对向量直接进行函数运算,例如,xsqrt=sqrt(x), r=round(x), xm=max(x) 分别表示对x向量中的元素进行平方根,四舍五入和取最大值
- matlab中,* 表示矩阵乘法,必须是n行乘以n列,而.*表示数乘,可以n行乘以n行
更多关于矩阵乘法的例子
Onramp course 7.1 Obtaining Multiple Outputs from Function Calls
- 使用[xrow, xcol]=size(A)可分别输出矩阵的行数和列数
- 使用[xMax,idx]=max(A)可分别输出矩阵A中的最大值和对应的index
- 如果只想输出一个值,例如只想输出index,可以使用~ 代替不需要的值,例如输入[~, ivMax]=max(V)),则只输出V向量中最大值对应的index