网站优化知识资讯,网站开发能进无形资产吗,百度账号安全中心官网,怎么用外网校内网站做英语先把matlab下载好。然后你就会发现电脑有少了几十个GB。服啦~
修改字体
字体真的是太小了#xff0c;其实我无论是使用什么编辑器我一般都会先改字体#xff0c;字体在开始中有一个预设#xff0c;可以修改字体#xff0c;这样眼睛看着也会舒服一点 命令行窗口的使用
这…先把matlab下载好。然后你就会发现电脑有少了几十个GB。服啦~
修改字体
字体真的是太小了其实我无论是使用什么编辑器我一般都会先改字体字体在开始中有一个预设可以修改字体这样眼睛看着也会舒服一点 命令行窗口的使用
这里可以直接在命令行窗口输入某些命令。
例如 10*9 90 他会自动的返回一个answer给你 工作区显示变量
在使用命令行窗口操作一些数据之后可以在工作区找到对应的值 Matlab基本知识
1.基本的操作
1分号
在每一行的语句后面加上分号(一定要是英文的 ; )表示不显示运行结果 但是即使没有显示在工作区还是可以体现。
一般中间计算的结果都是需要添加分号的。
分号同时也可以作为区分行的标志 2注释
标准格式为 在你要注释的代码前添加 %即可
快捷键 CtrlR
取消注释 CtrlT 3清除工作区clear
clear可以清楚工作区的所有变量
我现在的工作区 在输入clear之后工作区就全部清空了 4清除命令行窗口内容
clc可以清除命令行窗口中的所有文本,让屏幕变得干净
所以经常一起使用 clear;clc
这两条一起使用起到“初始化”的作用防止之前的结果对新脚其他程序文件产生干扰。 2.常用的操作函数
1输出和输入函数(disp 和 input)
disp:是屏幕输出函数类似于c语言中的printf函数
在matlab中字符串可以使用单引号或者双引号都可以
例如 disp(单引号) disp(双引号) 运行结果 接下来还可以输出向量
比如 %行向量同一行中间可以用逗号分隔也可以用空格 a [1,2,3] a [1 2 3] disp(a) % 列向量使用 “”来隔开 b [3;4;5] disp(b) 这在里disp后面加不加分号都会有运行结果不然这个函数加了;没用了那她还有什么用。 2字符串的合并
matlab中两个字符串的合并有两种方法 [1]方法一使用strcat(str1,str2……,strn) strcat(字符串1,字符串2) 示例代码如下 [2]方法二[str 1,str 2……, str n]或[str1 str2 …… strn]看成一个行向量 [祖国的,大好河山,我想去看看] 注意第一种方法确实可以 和 单引号和双引号混用但是第二种就不可以了 3数字转换为字符串
num2str 将数字转换为字符串 c 100 num2str(c) % 那么以后就可以拼接数字类型了 disp([c的取值为 num2str(c)]) disp(strcat(c的取值为, num2str(c))) 结果示例 如果这里直接将c放在字符串后面的话。会自动将c的数字类型通过ANSIC码转换为对应的字符串然后再拼接最后输出结果。 4input函数
input:将输入的数、向量、矩阵、字符串等赋给一个变量
这里和Python很相似在input中的字符串是一个提示 A input(请输入A); B input(请输入B) 不加分号的话不会输出但是会在工作区展示 5sum函数 【1】如果是向量无论是行向量还是列向量都是直接求和 E [1,2,3] sum(E) E [1;2;3] sum(E) 【2】如果是矩阵则需要根据行和列的方向作区分 sum后面的第二个参数可以指定对应的数字如果不写 默认是 1 按列求和得到行向量如果指定为2就是按行求和得到列向量。 E [1,2;3,4;5,6] % 三行二列的矩阵 % asum(x); % 按列求和(得到一个行向量 a sum(E) a sum(E,1) % asum(x,2); %按行求和(得到一个列向量 a sum(E,2) % asum(x(:));%对整个矩阵求和 a sum(sum(E)) % E(:) 一列一列的将全部列拼接为一列 E(:) a sum(E(:)) 6提取矩阵中的指定元素
先定义一个矩阵 A[1 1 4 1/3 3;1 1 4 1/3 3;1/4 1/4 1 1/3 1/2;3 3 3 1 3;1/3 1/3 2 1/3 1]; A 【1】取指定元素第一个参数是行号第二个参数是列号都是从1 开始 A(2,1) A(3,2) 【2】取指定某一行全部元素取指定的某一行的全部元素输出的是一个行向量 A A(2,:) A(5,:) 【3】取指定某一列全部元素 取指定的某一列的全部元素输出的是一个列向量 A A(:,1) A(:,3) 【4】取指定的某些行的全部元素输出的是一个矩阵 A A([2,5],:) % 只取第二行和第五行一共2行 A(2:5,:) % 取第二行到第五行一共4行 A(2:2:5,:) % 取第二行和第四行 从2开始每次递增2个单位到5结束 1:3:10 % 1 4 7 10 10:-1:1 % 10 9 8 7 6 5 4 3 2 1 A(2:end,:) % 取第二行到最后一行 A(2:end-1,:) % 取第二行到倒数第二行 运行结果 A 1.0000 1.0000 4.0000 0.3333 3.0000 1.0000 1.0000 4.0000 0.3333 3.0000 0.2500 0.2500 1.0000 0.3333 0.5000 3.0000 3.0000 3.0000 1.0000 3.0000 0.3333 0.3333 2.0000 0.3333 1.0000 ans 1.0000 1.0000 4.0000 0.3333 3.0000 0.3333 0.3333 2.0000 0.3333 1.0000 ans 1.0000 1.0000 4.0000 0.3333 3.0000 0.2500 0.2500 1.0000 0.3333 0.5000 3.0000 3.0000 3.0000 1.0000 3.0000 0.3333 0.3333 2.0000 0.3333 1.0000 ans 1.0000 1.0000 4.0000 0.3333 3.0000 3.0000 3.0000 3.0000 1.0000 3.0000 ans 1 4 7 10 ans 10 9 8 7 6 5 4 3 2 1 ans 1.0000 1.0000 4.0000 0.3333 3.0000 0.2500 0.2500 1.0000 0.3333 0.5000 3.0000 3.0000 3.0000 1.0000 3.0000 0.3333 0.3333 2.0000 0.3333 1.0000 ans 1.0000 1.0000 4.0000 0.3333 3.0000 0.2500 0.2500 1.0000 0.3333 0.5000 3.0000 3.0000 3.0000 1.0000 3.0000 【5】取全部元素按列拼接的最终输出的是一个列向量 A A(:) 7size函数
size(A)函数是用来求矩阵A的大小的,它返回一个行向量第一个元素是矩阵的行数第二个元素是矩阵的列数 A [1,2,3;4,5,6] B [1,2,3,4,5,6] size(A) size(B) [r,c] size(A) % 将矩阵A的行数返回到第一个变量r将矩阵的列数返回到第二个变量c r size(A,1) %返回行数 c size(A,2) %返回列数 8repmat函数
B repmat(A,m,n): 将矩阵A复制m×n块即把A作为B的元素B由m×n个A平铺而成。
m*n也可以理解为将A铺为m行n列 A [1,2,3;4,5,6] B repmat(A,2,1) B repmat(A,3,2) 3.Matlab中矩阵的运算
1矩阵乘法 *
先了解一下矩阵的乘法的操作过程 MATLAB在矩阵的运算中 “ * ” 号和 “ / ” 号代表矩阵之间的乘法与除法 A [1,2;3,4] B [1,0;1,1] A * B ----------------------------------------- 两个形状相同的矩阵对应元素不是真正的乘除法是每个元素之间的操作每个位置上的元素独立操作之间的乘除法需要使用 “ .* ” 和 “ ./ ” A [1,2;3,4] B [1,0;1,1] A .* B A ./ B 运行结果如下 A 1 2 3 4 B 1 0 1 1 ans 1 0 3 4 ans 1 Inf 3 4 -----------------------------------------
每个元素同时和常数相乘或相除操作上面的两种操作方法都可以
所以这里的点乘和乘点除和除都是一个相同效果 A [1,2;3,4] A * 2 A .* 2 A / 2 A ./ 2 -----------------------------------------
每个元素同时乘方时只能用 .^ 如果使用的是 ^ 那就是两个矩阵相乘 A [1,2;3,4] A .^ 2 A ^ 2 A * A A * A 运行结果如下 A 1 2 3 4 B 1 0 1 1 ans 1 0 3 4 ans 1 Inf 3 4 A [1,2;3,4] A * 2 A .* 2 A / 2 A ./ 2 A 1 2 3 4 ans 2 4 6 8 ans 2 4 6 8 ans 0.5000 1.0000 1.5000 2.0000 ans 0.5000 1.0000 1.5000 2.0000 A [1,2;3,4] A .^ 2 A ^ 2 A * A A 1 2 3 4 ans 1 4 9 16 ans 7 10 15 22 ans 7 10 15 22 2求矩阵的逆矩阵 inv(矩阵)
A/B A*inv(B)
求B的逆矩阵 B [1,0;1,1] // 利用原矩阵乘以它的逆矩阵得到单位矩阵即可验算 B * inv(B) A * inv(B) A / B 3Matlab中求特征值和特征向量 // 在Matlab中计算矩阵A的特征值和特征向量的函数是eig(A),其中最常用的两个用法 A [1 2 3 ;2 2 1;2 0 3] // Eeig(A)求矩阵A的全部特征值构成向量E。Eeig(A) // [V,D]eig(A)求矩阵A的全部特征值构成对角阵D并求A的特征向量构成V的列向量。V的每一列都是D中与之相同列的特征值的特征向量[V,D]eig(A) 运行结果如下 A 1 2 3 2 2 1 2 0 3 E -1.3166 5.3166 2.0000 每一列都是一个特征向量 V 0.8364 -0.6336 -0.2408 -0.3875 -0.5470 -0.8427 -0.3875 -0.5470 0.4815 D -1.3166 0 0 0 5.3166 0 0 0 2.0000 V和D的特征值和特征向量是对应的 也就是说D是第几列它的特征向量就在V的第几列 4find函数的基本用法
Matlab在存储矩阵时是一列一列存储的 // find函数它可以用来返回向量或者矩阵中不为0的元素的位置索引。 返回的是 *索引* X [1 0 4 -3 0 0 0 8 6] ind find(X) // 其有多种用法比如返回 前2个不为0的元素 的位置 ind find(X,2) // 上面针对的是向量一维若X是一个矩阵二维有行和列索引该如何返回呢 X [1 -3 0;0 0 8;4 0 6] ind find(X) // 这是因为在Matlab在存储矩阵时是一列一列存储的也就是将它优化成了一列 我们可以做一下验证 X(4) // 假如你需要按照行列的信息输出该怎么办呢 // 这里的r和c就是代表每次找到的这个元素在第几行或者第几列 [r,c] find(X) [r,c] find(X,1) %只找第一个非0元素 4.矩阵与常数的大小判断运算
共有三种运算符大于 ;小于 ;等于 一个等号表示赋值两个等号表示判断和编程是一样的 X [1 -3 0;0 0 8;4 0 6] X 0 X 4 运算结果如下
logical 数组逻辑数组
0代表否 1代表是
这里输出的数组为0就代表false是1就代表true即当前元素经过判断后成立 X [1 -3 0;0 0 8;4 0 6] X 1 -3 0 0 0 8 4 0 6 X 0 ans 3×3 logical 数组逻辑数组 1 0 0 0 0 1 1 0 1 X 4 ans 3×3 logical 数组 0 0 0 0 0 0 1 0 0 5.判断语句
Matlab的判断语句if所在的行不需要冒号语句的最后一定要以end结尾
中间的语句要注意缩进。 a input(请输入考试分数:) if a 85 disp(成绩优秀) elseif a 60 disp(成绩合格) else disp(成绩挂科) end 运行实例 结语
结束下一篇文章会更新层次分析法的代码的写法。
ヾ(▽)Bye~Bye~