1.数值计算和符号计算的认识
我们都知道MATLAB里面存在着数值计算和符号计算,但是两者之间到底是怎样的呢?
举一个很简单的例子,我们在高等数学里面的微积分学习时经常求不定积分,也就是原函数,这个过程实际上进行的就是符号运算,我们通过对一些变量字符x等等的运算,最后得出一个表达式;
或者说是高等数学里面的微分方程,我们经常求一个已知的微分方程的通解或者是特解,这个过程实际上也是对于一堆符号例如x,y的一系列的运算,我们称之为符号运算;
上述的两个运算都是符号运算,那么什么是数值运算呢,我们还是拿前面的两个例子,我们都知道,在求解已知函数的原函数的时候,并不是所有情况都可以求出他的精确解,而且是在实际情况里面,我们大部分情况都是无法获得精确解的;再例如微分方程,我们在实际情况里面也是很少能够求出已知的方程的通解;
这个时候的数值运算就应运而生,数值计算就是通过一些特定的值,通过一些散点来绘制曲线的解决方法,这个方法在实际情况里面是经常使用的,因为我们在大部分的情况下是无法获得精确解的;以上就是对于符号运算和数值计算的认识。
2.一维数组的创建
(1)冒号生成法
类似于一个等差数列;
(2)线性(对数)生成法
logspace是对数生成,linspace是线性生成,linspace的第一个参数和第二个参数分别代表起始数值和终止值,第三个参数是生成的向量里面的元素的个数,这个系统会自动计算之间的步长;
(3)子元素的寻访
我们首先创建一个魔方矩阵,我们想要找到第一行第二列的一个元素,我们使用find函数找到矩阵里面符合条件的元素,最后打印输出的结果是对应的标号,而不是矩阵里面元素的值;
3.二维数组的创建
(1)数组的元素的个数较少的时候,我们可以手动输入;
(2)我们可以使用系统自带的函数:eye,randn,magic,eye等等;
(3)我们在二维数组里面可以使用单个的角标找到对应位置的元素,这个时候是从每一列开始,每一列结束后进行下一列,这样的方法和双下标的一样找到对应位置的元素;
(4)127行我们可 以找到2,3行,2,3列重合的元素;我们也可以使用逻辑1的方法找到符合条件的元素,符合条件的就是1,不符合条件的就是0,
但是这个时候,如果我们还是使用find进行筛选,就会输出一些下标,我们无法像上面的一样直观的找到对应的位置,这个显然不是我们想要达到的结果;
当然,我们也可以自己进行命名,我们可以不使用系统的1,0;我们可以定义一个向量保存这些元素,下面就是给这个定义的L行向量重新命名为NaN,这样的话符合条件的位置就不会使用1,而是使用NaN进行标识;
(4)数组操作综合方法
这段代码的意思就是取出魔方矩阵的1,3两行的数据并且删除,显示其他4行的数据;
我们也可以对这两行进行其他的操作,我们的这个替换,要求要符合矩阵的规则,使之左右两端能够相互匹配;
我们也可以使用原有的矩阵元素取出对角线上面的元素,也可以利用对角线上面的元素创建一个新的矩阵;
4.两种引号的使用说明
(1)双引号的使用
我们打开这个结果就可以发现这个是一个1*1的矩阵;如下图所示:
这个表明这个字符串只是一个1*1的矩阵(这个会和后面的单引号区分的)
(2)双引号的嵌套
双引号里面包含双引号,我们就要在内层的双引号里面多加上一层双引号,否则系统无法识别内外层的双引号之间的修饰关系,如图所示:
这个通过观察也可以知道,这个是一个1*1的矩阵;
(3)字符串后面添加元素
通过代码,我们就可以知道直接在已知的后面加上单引号修饰的单词就可以添加在原来的语句的后面;
(4)存储多个元素
我们只需要把元素使用双引号修饰以后,放到矩阵里面就可以了;
(5)单引号使用
这个就是前面提到的不同之处,这个也是我们输入什么,就会输出什么,但是打开工作区就可以发现,这个是一个1*11的字符;
(6)异同点比较
首先,这个单引号的字符,我们通过4就可以找到对应位置的字符,因为他是一个1*11的矩阵,如果是双引号修饰的,我们使用4就会显示越界访问的错误,因为双引号修饰的就是1*1的矩阵,不可能找到第四个,单引号的有几个字符就可以找到第几个字符;
其次,我们对于双引号修饰的内容,可以使用前面提到的加号直接进行元素的添加
但是对于单引号修饰的内容,我们不能这样作,我们需要把添加的内容和已知的字符放到一个矩阵里面,如下图所示:这样就显示添加成功。