Matlab基础知识

基本操作和技巧

  1. matlab 大小写敏感,变量和python一样不用提前申明。
  2. matlab变量的默认类型是double
  3. 输入whos可以显示当前已经有的变量以及其类型属性等信息。
  4. python保留字(key word)——ans i j Inf (无穷大)eps(无穷小) NaN (not a number) pi
  5. clear + var 删除workspacevar变量;如果只写clear会全删。
  6. format + xxx 可以转换输出的结果的类型。默认为short类型。类型参考下表:
  7. 按行来读语句,也可以和C一样在语句后面加;表示下一行。
  8. Relational(logical) operators:
    大部分与C一样,但~=代表不等于;==代表等于;&&代表and||代表or
    9.在每一个if,for,while后面都要加一个end,中间的内容就是条件成立执行的。
  9. 一些技巧:
  • 可以查看之前调用的语句
  • 输入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的矩阵
矩阵运算直接用 *即可。

  1. 索引: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]构成两行。

  2. 矩阵修改:比如通过a(2,3)=xxx来替代~用等号即可

  3. colon(分号) operator —— 比如 A = [1:2:100]表示步长为2的等差数列,与pyhon稍微有一点不同的就是第二个参数和第三个参数的位置不一样~ 高级写法就是 A = [1:2:100; 2:2:100]这样就直接生成两行啦~

  4. A(3,:)就是代表第三行啦~
    a(3,:)=[]直接把最后一行删掉啦~

  5. F = [A B]可以让A B 矩阵形成增广矩阵(前提就是A B的秩是一样的)

  6. A.*B代表点c乘,每一项相互乘法(和加法类似) A*B就是矩阵的乘法啦~
    A+a矩阵加一个实数就是每一项都加一个实数
    A^2 表示A*A A.^2 表示每一项平方。

  7. A'表示逆矩阵。

  8. linspace() 和 numpy中生成是一样的 比如(1,100,100就是1~100 的100个点;eye就是单位矩阵;zeros零矩阵;ones就是全是1的矩阵;diag生成对角线矩阵 diag([1,2,3])就是生成对角线为1 2 3 的矩阵。

  9. 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的图像。

你可能感兴趣的:(Matlab基础知识)