学下资料:台大matlab课程视频(郭彦甫)
高等应用数学问题的MATLAB求解(第三版)
ncepu_Chen的博客:https://blog.csdn.net/ncepu_chen/category_8963336.html
矩阵的运算:
(1)A.' 矩阵的转置 A.*B 相应位置相乘 A*B 正常矩阵乘积 A./ 矩阵相应位置相除 inv(A) 矩阵求逆
(2)A&B两矩阵相应位置做与运算 A|B两矩阵做或运算 ~A矩阵做非运算
解析结果的化简与变换:
s1=simple(s) %将函数化简,如P1=(s+3)^2(s+2)(s+1)
f1=subs(f,x1,x1*)或f1=subs(f,{x1,x2,...xn},{x1*,x2*,...xn*}) %变量替换
语言流程结构:
循环结构:
s=0;
for i=1:100
s=s+i;
end
....................
每次+2的写法
s=0;
for i=1:2:100
s=s+i;
end
....................
t=0;i=1;
while (i<=100)
t=t+i;
i=i+1;
end
条件结构:
if(条件1)
语言执行
elseif(条件2)
语言执行
elseif(条件3)
语言执行
else
语言执行
end
语句 | 意义 |
break | 跳出循环 |
continue | 直接进入下一个循环 |
逻辑运算符 | 意义 |
&& | 且 |
|| | 或 |
~= | 不等于 |
函数结构:
创建在相应的文件夹下就好,可以在脚本中直接调用,很方便
function [f] = pos(x,y)
f=6*(x-1)+y;
end
数值类型:
数据类型 | 描述 |
double | 双精度浮点数 |
int8 | 8位带符号整数 |
int64 | 64位带符号整数 |
uint8 | 8位无符号整数 |
uint64 | 64位无符号整数 |
字符类型:
字符强制类型转换为相应的ASCLL码
s1 = 'h';
uint16(s1) % 得到 104
s2='ababababa';
结构体:
(与C语言一样)
student.name = 'miao';
student.id = 'miao@miao.com';
student.number = 123456;
student.grade = [100, 75, 73; ...
95, 91, 85.5; ...
100, 98, 72];
student
student(2).name = 'miao';
student(2).id = 'miao@miao.com';
student(2).number = 123456;
student(2).grade = [95 100 90; 95 82 97; 100 85 100];
student
student(1) = [] % 删除student列表第一项
元胞数组:
两种定义方法:
A(1,1)={[1 2 3; 4 5 6; 7 8 9]};
A(1,2)={'miao'};
A(2,1)={3+7i};
A(2,2)={-pi:pi:pi};
A
A{1,1}=[1 2 3; 4 5 6; 7 8 9];
A{1,2}='miao';
A{2,1}=3+7i;
A{2,2}=-pi:pi:pi;
A
文件读写:
1,只含数值型变量的表格
filename就是要导入的Excel的文件名,注意加.xls或.xls
sheet就是表格页名
range是指要导入数据的范围
num=xlsread('filename','sheet','range')
2,同时含数值型变量和字符型变量的表格
[num,txt]=xlsread('filename','sheet','range')
[num,txt,raw]=xlsread('filename','sheet','range')
num是数值型变量且为矩阵,txt是字符型变量且为细胞数组,raw既含数值型变量又含字符型变量,当然,raw是细胞数组
例如:[data,text] = xlsread('C:\Test\test.xls'', 'testsheet', 'B2:D10');
3,写入表格
写入命令:xlswrite(filename, output, sheetname, range)
其中Output为要写入的数据,可以是矩阵也可以是cell类型
例如:xlswrite('C:\test\text.xls', eye(3), 'Sheet1', 'A1:C3')