- 3
- 0
- 约1.09万字
- 约 64页
- 2016-11-29 发布于湖北
- 举报
基本数据类型 基本运算与输入输出 程序流程语句 文件编写与调试 编程技巧 主要内容 3.5 编程技巧 充分利用速度和内存 尽可能采用MATLAB提供的函数指令 采用有效算法 尽量用M函数文件代替M脚本文件 尽量用save,load指令实施数据保存和获取。 测定程序执行时间和时间分配 tic,toc分别是启动秒表和停止秒表的指令 cputime是获取CPU时间的指令 耗时剖析 profile on 待测函数名 profile viewer 测定程序执行时间和时间分配 例: tic, t = cputime; x1=1;x2=pi; for i = 1: 32 y1 = log(x1)-sin(x1); y2 = log(x2)-sin(x2); x = 0.5*(x1+x2); y = log(x)-sin(x); if y * y1 0, x1 = x; end if y * y2 0, x2 = x; end end format long;x , y toc, cputime-t x = 2.219107148718498 y = -2.058835324447728e-010 Elapsed time is 0.008586 seconds. ans = 0 3.5 编程技巧 耗时剖析 profile on 待测函数 profile viewer 例:测试分析magic(35)。 程序如下: profile on magic(35); profile viewer 3.5 编程技巧 * 矩阵的乘方 矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。 点运算 点运算符有.*、./、.\和.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。 矩阵翻转 rot90(A), 矩阵A逆时针翻转90度(Rotate matrix 90 degrees) flipud(A),矩阵A上下翻转(flip matrix in up/down direction) fliplr(A),矩阵A左右翻转(flip matrix in left/right direction) 3.2.1 代数运算 六种逻辑运算 逻辑与: , and() 逻辑或: |, or() 逻辑非: ~, not() 逻辑异或: xor() 先决逻辑与: 先决逻辑或: || 注意: 逻辑运算中,矩阵元素非0即1 逻辑与、或、异或操作中的两个矩阵维数相同或其中之一为标量。 3.2.2 逻辑运算 六种关系运算 小于: 不大于:= 大于: 不大于:= 等于:== 不等于:~= 运算规则 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。 当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。 3.2.3 关系运算 1) find: 寻找逻辑值的向量元素下标 2) all: 逻辑条件全部 3) any: 逻辑条件任何一个 4) exist: 检查某变量是否存在 5) isnan: 检查非数值量 6) finite: 探测无穷大 7) isempty: 探测空 8) isstr: 探测字符串 9) strcmp: 比较字符串 关系运算与逻辑运算函数 基本数学函数 abs: 绝对值或复数的模 floor:向负方向取整 angle: 相位角 ceil:向正方向取整 sqrt: 平方根 sign:符号函数 real: 实部 rem:求余函数 imag: 虚部 exp:指数函数 conj: 共轭复数 log: 自然对数 round: 四舍五入取整 log10:常用对数 fix: 截尾取整 3.2.4 矩阵元素的数据变换 三角函数 sin: 正弦 sinh:双曲正弦 cos: 余弦 cosh:双曲余弦 tan: 正切 tanh:双曲正切 asin: 反正弦 asinh:反双曲正弦 acos: 反余弦 acosh:反双曲余弦 atan: 反正切 atanh:反双曲正切 atan2: 双值反正切 3.
原创力文档

文档评论(0)