一、矩阵
1、矩阵赋值
矩阵分为行row 和列column
赋值行如下图:
赋值行和列 用;进行分隔
矩阵之间的赋值
2、矩阵运算
加法
(1)
A矩阵的第一行元素与B的三行分别相加
矩阵索引
图片转自https://xiongyiming.blog.csdn.net/article/details/81746332
(2)
A的第一列与B的三列分别相加
(3)
两行乘以三行无法执行
(4)
矩阵对应位置相加
减法与加法相同
乘法
(1)
A 的第一行分别乘以B的列得到一行
(2)
A的行乘以B的列
点乘
点乘是对应位置相乘
二、关键字
与c语言类似,一般的有disp、input、for、while、if、else、elseif等
disp(): display缩写,显示的意思,这个函数是将()中的内容显示在command window中
小技巧:在command window中语句加分号按回车后不会显示
input(str):输入,他是一个函数,在command window中显示str的内容,要求输入,str的内容一般为提示输入内容,但是输入的内容必须是字符串,得加上引号。
while 、if、else、elseif、end、continue、break:
每个语句后要加上end关键字
for:n=1是初值,n=1:100是执行100次的意思
三、函数
内置函数:
类似input 、disp、max、min等都是已经写好的函数,使用方法可以如下获取:
点开input函数的文档即可获得使用方法。
自定义函数
这是一个标准的函数形式,使用function关键字,function C =F2C()中F2C是函数名,括号中可以加参数,此处注意函数名应该与文件名一致,才可以在脚本或其他文件中调用自定义函数,当然前提是matalab应该包含了自定义函数的路径。
function handles(函数的句柄)
在这种模式中@()中的参数是f 的参数,与函数的参数对应
四、变量类型
int (u)int16 (u)int8 (u)int32 (u)int32 double single cell logic string char struct
function handle
string:
string类型的变量只有一个元素,即为整个字符串,在索引的时候没有办法索引单个字符,char型的变量是字符的集合,可以索引单个字符。变量类型的定义可以使用函数进行转化,如char(变量名);
a赋值97后默认为double类型。
使用char()转化为char型。
字符串反转实例:
str1 = char(input("please input a string:"));
len = strlength(str1);
str2 = str1;
count_1 = 1;
count_2 = len;
for n=1:len
str2(count_1) = str1(count_2);
count_1 =count_1 +1;
count_2 = count_2-1;
end
struct类型:顺序存放各种数据的一种结构
(1)定义方式如下:
索引方式如下:
(2)
函数:
**cell类型:**分各个区域的一种结构,每个区域存放一个pointer(指针),指向不同的数据体
定义和索引:
(1)
(2)
在索引的时候应注意:
当有一个field是矩阵时,用{}获得矩阵的具体值
函数:
函数介绍:
cat(x,A,B) : 处理多维cell,x = 1是row拼接,x=2是column拼接,x = 3 是layer拼接
如下图:
A = [1 2 3 ; 4 5 6];
B = [7 8 9;1 2 3];
C = cat(3,A,B);
%结果
>> C
C(:,:,1) =
1 2 3
4 5 6
C(:,:,2) =
7 8 9
1 2 3
reshape函数:
将元素个数一样的矩阵进行转化:B = reshape(A,new_row,new_column)
A = [1 2 ; 4 5 ];
B = reshape(A,1,4);
>> B
B =
1 4 2 5
检查变量的类型:
五、文件存储和读取
1、简单的文件存储函数:
save/load(“file_name”,("-ascii"));
当有-ascii指令时,文本可见,不用时文本被压缩
两个函数还有很多参数,可以通过help指令查看
2、Excel文件的读取和写入:
xslread() 和xslwrite()两个函数也可以通过help指令获得详细用法,不过R2019a后的MATLAB不建议使用这两个函数,推荐使用其他函数 readtable、readmatrix 或 readcell
和writecell、writetable、writematrix。
3、文本文件的读取和写入
fprintf()和fread()函数
fprintf():
A1 = [9.9, 9900];
A2 = [8.8, 7.7 ; ...
8800, 7700];
formatSpec = 'X is %4.2f meters or %8.3f mm\n';
fprintf(formatSpec,A1,A2)
X is 9.90 meters or 9900.000 mm
X is 8.80 meters or 8800.000 mm
X is 7.70 meters or 7700.000 mm
formatSpec 输入中的 %4.2f 指定输出中每行的第一个值为浮点数,字段宽度为四位数,包括小数点后的两位数。formatSpec 输入中的 %8.3f 指定输出中每行的第二个值为浮点数,字段宽度为八位数,包括小数点后的三位数。\n 为新起一行的控制字符。
注:其中部分图片截自郭彦甫教授的教学ppt