复习一波matlab,真的是什么都忘了。。。
prewords
首先讲几点matlab语法比较蛋疼的几点,真的是与众不同啊。。。啊啊啊啊
- 数组下标的索引是从1开始的
- 多维数组的索引是以列为主序的。所以尽量少的用单下标索引数组。
- 区间的范围是左闭右闭的原则。(for i = 1:5)
- 函数很多都不加括号,例如help tic, tic; toc
几个非常有用的keys:
- tab自动补全命令
- ↑↓方向键来找历史命令
- doc查阅文档
- m file中选中code blocks来执行命令。
- 三分点可以续行
基本的语法
初始化预分配一个数组提高效率:
1 2 3 4
| num = zeros(1, 100); ii = 1: 100; num = ii.^2;
|
sym的使用
定义一个变量:syms x y
1 2 3 4 5 6 7 8 9 10 11
| syms x a b subs(int(x*exp(x), a, b), [a, b], [0, 2]) ans = exp(2) + 1 syms a b r x y solve('(x-a)^2+(y-b)^2=r^2','x') solve('(x-a)^2+(y-b)^2=r^2','y') a = sym('sqrt(2)')
|
画图
1 2 3 4 5 6 7 8 9 10
| >> t = (0:pi/100:pi)'; >> y1 = sin(t)*[1, -1]; >> y2 = sin(t).*sin(9*t); >> t3 = pi*(0:9)/9; >> y3 = sin(t3).*sin(9*t3); >> plot(t, y1, 'r:', t, y2, 'b', t3, y3, 'bo') ezplot()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| >> syms x a b >> subs(int(x*exp(x), a, b), [a, b], [0, 2]) ans = exp(2) + 1 syms a b r x y solve('(x-a)^2+(y-b)^2=r^2','x') solve('(x-a)^2+(y-b)^2=r^2','y') hist画出来的图的纵坐标表示所在区间范围内数字的个数。 GM模型以算法的实现 元胞自动机的科普 学会画好看的图形 待续。。。多看一点理论吧 matlab向量化的思想,尽量少的使用for循环 什么是运筹学?计算机专业的仿真能力的优势在哪里? 涂色的函数:fill() spline可以修正误差曲线。 randi([0, 100], 1, 100); histogram来画重叠的图像。 用画图菜单里面的选亮菜单可以造假。。。 >> x = rand(1, 100); >> x = rand(1, 100).*10; >> noise = randn(1, 100); >> y = 2*x+5+noise; >> figure; >> plot(x, y, 'b*'); >> grid on; >> lsqcurvefit
|
未解决的问题