Matlab基础知识
2019-01-22 本文已影响2人
weifeng_genius
基本操作和技巧
- matlab 大小写敏感,变量和python一样不用提前申明。
- matlab变量的默认类型是double
- 输入whos可以显示当前已经有的变量以及其类型属性等信息。
- python保留字(key word)——
ans
i
j
Inf
(无穷大)eps
(无穷小)NaN
(not a number)pi
-
clear + var
删除workspace
的var
变量;如果只写clear
会全删。 -
format
+xxx
可以转换输出的结果的类型。默认为short类型。类型参考下表:
- 按行来读语句,也可以和C一样在语句后面加
;
表示下一行。 - Relational(logical) operators:
大部分与C一样,但~=
代表不等于;==
代表等于;&&
代表and
;||
代表or
。
9.在每一个if
,for
,while
后面都要加一个end
,中间的内容就是条件成立执行的。 - 一些技巧:
- 按
↑
可以查看之前调用的语句 - 输入
clc
可以清屏。 - matlab中
%
是注解 -
%%
可以弄出一个section 把程序分段,也能分段执行,加一个;
可以一行多个子句。 - 右键可以一键注解或取消注解。
CTRL + R
CTRL + T
- 右键可以一键智能缩进。
CTRL + I
矩阵array
1.基础
row vector—— a = [1 2 3 4]
(空格)
column vector—— b = [1;2;3;4]
(分号)
A = [1 2;3 4]
表示2*2的矩阵
矩阵运算直接用 *
即可。
-
索引:array indexing
A(2,2)
row-column 可以直接读取该位置的值
A([1,2],[1,2])
表示交集.
A([1 3 5])
得到1 3 5号的数字。(从上到下从左到右数)
A([1 3;1 3])
得到是两个重复的[1 3]构成两行。
-
矩阵修改:比如通过
a(2,3)=xxx
来替代~用等号即可 -
colon(分号) operator —— 比如
A = [1:2:100]
表示步长为2的等差数列,与pyhon
稍微有一点不同的就是第二个参数和第三个参数的位置不一样~ 高级写法就是 A =[1:2:100; 2:2:100]
这样就直接生成两行啦~ -
A(3,:)
就是代表第三行啦~
a(3,:)=[]
直接把最后一行删掉啦~ -
F = [A B]
可以让A B 矩阵形成增广矩阵(前提就是A B的秩是一样的) -
A.*B
代表点c乘,每一项相互乘法(和加法类似)A*B
就是矩阵的乘法啦~
A+a
矩阵加一个实数就是每一项都加一个实数
A^2 表示A*A
A.^2
表示每一项平方。 -
A'
表示逆矩阵。 -
linspace()
和 numpy中生成是一样的 比如(1,100,100
就是1~100 的100个点;eye
就是单位矩阵;zeros
零矩阵;ones
就是全是1的矩阵;diag
生成对角线矩阵diag([1,2,3])
就是生成对角线为1 2 3 的矩阵。
-
max(A)
得出的是挑选每一列最大的那个组成的行矩阵,后面的那些也是一样的。而若要得到整个矩阵中的最大(最小 平均 加和就调用两次即可。
-
sort(A)
和sortrows(A)
的区别 —— 前者是从小到大的按列来排序,而后者也是排序只不过交换顺序的时候是整行交换。 -
size()
得到矩阵的n*m length() 得到长度,就是得到列的个数 find()可以得到某个数字的索引 比如find(A==5)
可以找到矩阵中等于5的索引。
Scripts and Function
- 先定义A = zeros(2000,2000)相比于让A循环增大,可以提高效率。
- 记录时间:
tic
XXXXX
toc
- 检测输入变量个数:
function [a,F] = a_F(v2,v1,t2,t1,m)
%A_F 此处显示有关此函数的摘要
% 计算加速度和力
if nargin == 4 % 当检测输入变量只有两个时,设置默认变量
m = 1;
end
a = (v2 - v1)./(t2-t1);
F = m.*a;
end
%[a f] = a_F(2,1,2,1,2) 来获取输出
>> [a F] = a_F(2,3,1,2)
a = 1
F = 1
>> [a F] = a_F(2,3,1,2,4)
a = 1
F = 4
>>
- Function Handle
f = @(x) exp(-2*x)
%其实是一个指针,指向e^-2x这个函数。让f指向exp(-2x)的值~
x = 0:0.1:2;
plot(x,f(x));
>>> 绘制出一个e^-2x的图像。