MATLAB基本语法之层次分析法
Posted Z_FIEND°
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB基本语法之层次分析法相关的知识,希望对你有一定的参考价值。
前言
- 为了参加数学建模的比赛,懂的都懂好吧...开一个坑,一边学数学建模一边进行MATLAB的语法学习,里面很多理解都很不深刻,大佬勿怪好吧...
基本常识
1.分号( ;)
在matlab中分号是换行的含义,也可以代表一段语句的结束,感觉和C的分号差不多吧,在某种程度上又和C中的逗号的作用有重叠
a = 3; //会直接输出这段话,但不进行操作
a = 5 //会明显的输出a = 5
对比以下例子
a = 3+5; //输出了a = 3+5;
a = 3+5 //输出了8
可见分号还起到是否执行显示语句的作用?不太确定哈...(后面理解加深了再修改解释)
2.-1多行注释:(%)
- 选中要注释的若干语句,快捷键Ctrl+R
2.-2取消注释
- 选中要取消注释的语句,快捷键Ctrl+T
3.清空窗口
clear可以清楚工作区的所有变量
1.clear
% clc可以清除命令行窗口中的所有文本,让屏幕变得干净
2.clc
- 组合在一起:clear;clc
这两条一起使用,起到“初始化”的作用,防止之前的结果对新脚本文件(后缀名是 .m)产生干扰。(这里也可以看出来分号的作用的确是换行)
层次分析法(用到的函数)
4.输出disp()和输入input()
disp()
matlab中disp()就是屏幕输出函数,类似于c语言中的printf()函数
disp('该说什么好呢...我是江户川柯南...是一个侦探...') %输出字符
a = [1,2,3] %同一行中间用逗号分隔,也可以不用逗号,直接用空格
a = [1 2 3]; %若是加上分号,就会导致这组数在工作区保存,但不会输出,怎么理解呢?..应该可以说是保存在数据流中,这说明了分号的另一个作用,阻止数据流的输出..
disp(a)
% 注意,disp函数比较特殊,这里可要分号,可不要分号哦
disp(a);
input()
一般我们会将输入的数、向量、矩阵、字符串等赋给一个变量,这里我们赋给A,有点面向对象的味道了,很像python中的input(),应该说一模一样?..
A = input('请输入A:');
B = input('请输入B:')
% 注意观察工作区,并体会input后面加分号和不加分号的区别:作用一致,但B输入的数值会直接输出到屏幕上
5.字符串的合并strcat()和num2str()
strcat()
strcat(str1,str2……,strn)
strcat('字符串1','字符串2')
num2str() 将数字转换为字符串
c = 102
num2str(c)%转换类型之后,其字符串类型的数据将存在工作区中(现在看来,这个工作区很像什么?内存池吧?..像是一个MATLAB编译器自主申请的一块小内存,由用户自主分配使用并释放)
disp(['c的取值为' num2str(c)])%其实这里就涉及到了[ ]的应用,[ ]很像python中的列表,但python中的列表是可以装各种类型的数据的,但当[]嵌套[]时,若是数据类型不同,将导致一部分类型的数据转为乱码,如整形类型和字符放一起就会乱码
%这里是不是侧面说明了disp不只能输出字符类型的变量?这python中的print()和C中的printf()很像,但也不一样,python中的print()直接一个逗号就可以让字符串相连,但disp就鸡肋,也没有像C一样的规范性,可以直接拿格式字符完成输出
disp(strcat('c的取值为', num2str(c)))
sum()
这个函数比较简单,用在向量上是默认求和列向量,如果只有行向量就求和行向量
1.如果是向量(无论是行向量还是列向量),都是直接求和
E = [1,2,3]
sum(E)
E = [1;2;3]
sum(E)
2.如果是矩阵,则需要根据行和列的方向作区分
E = [1,2;3,4;5,6]
%按列求和(得到一个行向量)
a = sum(E) %9,12
a = sum(E,1) %第二个参数应该是选择求和方向1为列,2为行,啧...这就很不合理%按行求和(得到一个列向量)
a = sum(E,2)%对整个矩阵求和
a = sum(sum(E))E(:)是将第二列的向量放到第一列的向量下面
a = sum(E(:))%这里再求和
以上是关于MATLAB基本语法之层次分析法的主要内容,如果未能解决你的问题,请参考以下文章