速查表

面向 Python 用户的 MATLAB

MATLAB 语言主要设计用于数学密集型科学计算。MATLAB 将专为迭代分析而设计的桌面环境,与一种直接表达矩阵和数组数学运算的编程语言相结合。理解该哲学和 API 设计理念有助于学习 MATLAB。

使用 MATLAB 增强 Python

将 MATLAB 的高级工具直接集成到您的 Python 工作流中。

Python 语法 MATLAB 语法 目的 MATLAB 示例
# %

注释

% hello
print 不以分号 (;) 结尾

打印输出

x
/ ...

继续到下一行

x = 1+...2;
os !

操作系统命令

! echo hi
+ - * / + - * /

数学运算符

x = 1+2
** ^

指数

x = y^2
* / ** .* ./ .^

按元素运算符

x = [1 2].* [3 4]
not, and, or ~ & |

NOT、AND、OR 逻辑运算符

if x<2 & x>2
del clear

清除内存中的变量

clear x y
clear clc

清空命令行窗口

clc
MATLAB 语法 目的 示例
( )

索引(写入时复制)

x(1,1)
[ ]

创建数组

x = [1 2 3]

Join arrays

z = [x ; y]
{ }

创建元胞数组

x = {42; "hello world"}

从容器中提取内容

x{1,1}
.

访问类属性或方法

obj.Data

引用表或结构体字段

t.FieldName
  • 起始元素的索引为 1。
  • 索引包含左右两端的元素。
  • 索引选项包括 N 维索引 (row,col)、线性索引(元素编号)和逻辑索引(条件语句)。
创建函数

您可以在函数文件中声明函数。输入参数括在圆括号中。

function z = foo(x,y)
   ...
end

多个输出使用方括号。

function [a,b] = foo(x,y)
    ...
end

使用输入参量和名称-值对组调用函数

  y = foo(x,y,"Name",Value)

相似的数据类型:

Python MATLAB
float double, single
complex complex single, complex double
int (u)int8, (u)int16, (u)int32, (u)int64
float(nan) NaN
float(inf) inf
str str, char
bool logical
dict struct
list, tuple cell
pandas.dataframe table

MATLAB 默认将所有数值存储为双精度浮点数。Python 将一些数值存储为整数,另一些数值存储为浮点数。在 MATLAB 中,对于 x=4y=4.0x 始终等于 y

语句 示例

for

for i = 1:10
   ...
end

if

if x<
   ...
   elseif x == 2    
   else
   ...
end

while

while x<3
   ...
end

switch-case

switch switch_arg
   ...
   case case_arg
   ...
end

try-catch

try
   ...
   catch
   ...
end
定义类 使用类
classdef MyClass
   properties
      MyProp
   end
   methods
      function obj = MyClass(val)
      end
      function y = MyMethod(obj,x)
      end
   end
end
  • 使用与类相同的名称保存类定义

    MyClass.m
  • 创建类的对象

    a = MyClass
  • 访问属性

    a.MyProp
  • 调用方法以执行操作

    b = MyMethod(a,val)
  • 要按引用传递,请创建“句柄”类

    classdef myclass < handle
       ...
    end