matlab与python编程对照
目录
- 1. 基础操作
- 1.1 循环
- 1.1.1 for 循环
- 1.1.2 while 循环
- 1.2 if 判断
- 1.2.1 大小判断
- 1.2.2 与、或、非
- 2. 一维数组
- 2.1 创建数组
- 2.2 置换数组中特定索引的元素
- 2.3 输出数组中倒数第一和倒数第二个元素
- 2.4 扩大数组的长度
- 2.5 缩小数组的长度(删除指定索引的元素)
- 2.6 数组同时加上相同的数值
- 2.7 数组同时乘以相同的数值
- 2.8 找到特定元素在数组中的位置(索引)
- 2.9 创建数值相同的数组
- 2.10 创建数值连续(等差)的数组
- 2.11 数组排序
- 2.12 数组排序后的原索引
- 2.13 排除数组中重复的元素
- 3. 二维矩阵(python基于numpy)
- 3.1 创建指定行数和列数的矩阵
- 3.2 置换矩阵指定行的元素
- 3.3 置换矩阵指定列的元素
- 3.4 扩大矩阵·增加行
- 3.5 扩大矩阵·增加列
- 3.6 缩小矩阵·删除指定行
- 3.7 缩小矩阵·删除指定列
- 3.8 查看矩阵的行数和列数
- 3.9 矩阵转置
- 4. 其它对照
- 4.1 Matlab的cell格式与Python对照
- 4.2 Matlab的struct格式与Python的字典对照
- 4.3 小数取整
- 4.4 程序暂停固定时长和记录运行时长
- 4.5 生成随机数和随机数矩阵
- 5. Python编程笔记
- 5.1 元组添加元素
- 5.2 字典按照索引取数据
1. 基础操作
1.1 循环
1.1.1 for 循环
· Matlab编程
for i = 1:3i
end
· Matlab输出

· Python编程
for i in range (1,4):print(i)
· Python输出

———————————————————————————————————
1.1.2 while 循环
· Matlab编程
a = 0;
while a < 3a = a+1
end
· Matlab输出

· Python编程
a = 0
while a < 3:a = a+1print(a)
· Python输出

———————————————————————————————————
1.2 if 判断
1.2.1 大小判断
· Matlab编程
% 输出a,b中较大的数
a = 1;
b = 2;
if a > ba
elseif a == ba
elseif a < bb
end
% 未涉及的符号还有:
% 大于等于:>=
% 小于等于:<=
% 不等于:~=
· Matlab输出

· Python编程
# 输出a,b中较大的数
a = 1
b = 2
if a > b:print (a)
elif a == b:print (a)
elif a < b:print (b)# 未涉及的符号还有:
# 大于等于:>=
# 小于等于:<=
# 不等于:!=
· Python输出

———————————————————————————————————
1.2.2 与、或、非
· Matlab编程
% 输出a,b,c中较大的数
a = 1;
b = 2;
c = 3;
if a >= b && a >=ca
elseif b >= a && b >= cb
elsec
end
% 或的符号为'||',用法同上
% 非的符号为'~',主要用作'~=',还有逻辑值判断
· Matlab输出

· Python编程
# 输出a,b,c中较大的数
a = 1
b = 2
c = 3
if a >= b and a >=c :print (a)
elif b >= a and b >= c :print (b)
else:print (c)
# 或的符号为'or',用法同上
% 非的符号为'!',主要用作'!='
· Python输出

———————————————————————————————————
2. 一维数组
2.1 创建数组
· Matlab编程(矩阵)
a = [1,2,3,4]
· Matlab输出

· Python编程(列表)
a = [1,2,3,4]
print(a)
· Python输出

———————————————————————————————————
2.2 置换数组中特定索引的元素
· Matlab编程
% 创建[1,2,3,4]一维数组,并将其中的第3个元素置换为0(matlab的索引自1开始,所以第3个元素的索引为3)
a = [1,2,3,4];
a(1,3) = 0
· Matlab输出

· Python编程
# 创建[1,2,3,4]一维数组,并将其中的第3个元素置换为0(python的索引自0开始,所以第3个元素的索引为2)
a = [1,2,3,4]
a[2] = 0
print(a)
· Python输出

———————————————————————————————————
2.3 输出数组中倒数第一和倒数第二个元素
· Matlab编程
a = [1,2,3,4];
a(end)
a(end-1)
· Matlab输出

· Python编程
a = [1,2,3,4]
print(a[-1])
print(a[-2])
· Python输出

———————————————————————————————————
2.4 扩大数组的长度
· Matlab编程
a = [1,2,3,4];
a(1,5) = 0
· Matlab输出

· Python编程
a = [1,2,3,4]+[0]
print(a)
· Python输出

———————————————————————————————————
2.5 缩小数组的长度(删除指定索引的元素)
· Matlab编程
% 删除a中的第2个元素
a = [1,2,3,4];
a(2) = []
· Matlab输出

· Python编程
# 删除a中的第2个元素
a = [1,2,3,4]
del a[1]
print(a)
· Python输出

———————————————————————————————————
2.6 数组同时加上相同的数值
· Matlab编程
% a数组中的元素全部加1
a = [1,2,3,4];
b = a + 1
· Matlab输出

· Python编程
# a数组中的元素全部加1
a = [1,2,3,4]
b = [i+1 for i in a]
print(b)
· Python输出

———————————————————————————————————
2.7 数组同时乘以相同的数值
· Matlab编程
% a数组中的元素全部乘以2
a = [1,2,3,4];
b = a*2
· Matlab输出

· Python编程
# a数组中的元素乘以2
a = [1,2,3,4]
b = [i*2 for i in a]
print(b)
· Python输出

———————————————————————————————————
2.8 找到特定元素在数组中的位置(索引)
· Matlab编程
a = [1,2,3,4];
b = 3;
find(a==b)
· Matlab输出

· Python编程
a = [1,2,3,4]
b = 3
print(a.index(b))
· Python输出

———————————————————————————————————
2.9 创建数值相同的数组
· Matlab编程
% 创建长度为5,数值都为2的数组
a = ones(1,5)*2
· Matlab输出

· Python编程
# 创建长度为5,数值都为2的数组
a = [2]*5
print(a)
· Python输出

———————————————————————————————————
2.10 创建数值连续(等差)的数组
· Matlab编程
% 创建1到5,间隔为1的数组
a = (1:5)% 创建2到8,间隔为2的数组
b = (2:2:8)
· Matlab输出


· Python编程
# 创建1到5,间隔为1的数组
a = list(range(1,6))
print(a)# 创建2到8,间隔为2的数组
b = list(range(2,9,2))
print(b)
· Python输出

———————————————————————————————————
2.11 数组排序
· Matlab编程
a = [1,3,5,2,4];
b = sort(a,"ascend")
c = sort(a,"descend")
· Matlab输出


· Python编程
a = [1,3,5,2,4]
b = sorted(a,reverse=0)
c = sorted(a,reverse=1)
print(b)
print(c)
· Python输出

———————————————————————————————————
2.12 数组排序后的原索引
· Matlab编程
a = [1,3,5,2,4];
[~,b] = sort(a,"ascend")
· Matlab输出


· Python编程
a = [1,3,5,2,4]
b = sorted(range(len(a)), key=lambda k:a[k], reverse=0)
c = sorted(range(len(a)), key=lambda k:a[k], reverse=1)
print(b)
print(c)
· Python输出

———————————————————————————————————
2.13 排除数组中重复的元素
· Matlab编程
a = [1,2,1,2,3];
b = unique(a)
· Matlab输出

· Python编程
a = [1,2,1,2,3]
b = list(set(a))
print(b)
· Python输出

———————————————————————————————————
3. 二维矩阵(python基于numpy)
3.1 创建指定行数和列数的矩阵
· Matlab编程
a = zeros(2,3)
· Matlab输出

· Python编程
import numpy
a = numpy.zeros((2,3))
print(a)
· Python输出

———————————————————————————————————
3.2 置换矩阵指定行的元素
· Matlab编程
a = zeros(2,3);
a(2,:) = [1,1,1]
· Matlab输出

· Python编程
import numpy
a = numpy.zeros((2,3))
a[1] = [1,1,1]
print(a)
· Python输出

———————————————————————————————————
3.3 置换矩阵指定列的元素
· Matlab编程
a = zeros(2,3);
a(:,2) = [1,1]
· Matlab输出

· Python编程
import numpy
a = numpy.zeros((2,3))
a[::,1] = [1,1]
print(a)
· Python输出

———————————————————————————————————
3.4 扩大矩阵·增加行
· Matlab编程
a = zeros(2,3);
a(end+1,:) = [1,1,1]
· Matlab输出

· Python编程
import numpy
a = numpy.zeros((2,3))
b = [1,1,1]
a = numpy.insert(a,2,b,axis=0)
print(a)
· Python输出

———————————————————————————————————
3.5 扩大矩阵·增加列
· Matlab编程
a = zeros(2,3);
a(:,end+1) = [1,1]
· Matlab输出

· Python编程
import numpy
a = numpy.zeros((2,3))
b = [1,1]
a = numpy.insert(a,3,b,axis=1)
print(a)
· Python输出

———————————————————————————————————
3.6 缩小矩阵·删除指定行
· Matlab编程
a = zeros(2,3);
a(2,:) = []
· Matlab输出

· Python编程
import numpy
a = numpy.zeros((2,3))
a = numpy.delete(a,1,axis=0)
print(a)
· Python输出

———————————————————————————————————
3.7 缩小矩阵·删除指定列
· Matlab编程
a = zeros(2,3);
a(:,2) = []
· Matlab输出

· Python编程
import numpy
a = numpy.zeros((2,3))
a = numpy.delete(a,1,axis=1)
print(a)
· Python输出

———————————————————————————————————
3.8 查看矩阵的行数和列数
· Matlab编程
a = [1,1,1;2,2,2];
b = size(a,1)
c = size(a,2)
· Matlab输出


· Python编程
import numpy
a = numpy.zeros((2,3))
a[0] = [1,1,1]
a[1] = [2,2,2]
b = a.shape[0]
c = a.shape[1]
print(b)
print(c)
· Python输出

———————————————————————————————————
3.9 矩阵转置
· Matlab编程
a = [1,1,1;2,2,2];
b = a'
· Matlab输出

· Python编程
import numpy
a = numpy.ones((2,3))
a[0] = [1,1,1]
a[1] = [2,2,2]
b = numpy.transpose(a)
print(b)
· Python输出

———————————————————————————————————
4. 其它对照
4.1 Matlab的cell格式与Python对照
· Matlab编程
a = [{0},{[1,2,3]},{"str"}]
b = a{1,2}
· Matlab输出


· Python编程
a = [0,[1,2,3],"str"]
b = a[1]
print(a)
print(b)
· Python输出
———————————————————————————————————
4.2 Matlab的struct格式与Python的字典对照
· Matlab编程
a = struct("Name",["Alice","Sebastian"],"Age",[18,19])
b = a.Name(1,1)
c = a.Age(1,1)
· Matlab输出

· Python编程
a = {"Name":["Alice","Sebastian"],"Age":[18,19]}
b = a["Name"][0]
c = a["Age"][0]
print(a)
print(b)
print(c)
· Python输出

———————————————————————————————————
4.3 小数取整
· Matlab编程
a = 1.414
b = floor(a) % 向下取整
c = ceil(a) % 向上取整
d = round(a) % 四舍五入
· Matlab输出

· Python编程
import math
a = 1.414
b = math.floor(a) # 向下取整
c = math.ceil(a) # 向上取整
d = round(a) # 四舍五入
print(a)
print(b)
print(c)
print(d)
· Python输出

———————————————————————————————————
4.4 程序暂停固定时长和记录运行时长
· Matlab编程
tic
for i = 1:3pause(1)
end
toc
· Matlab输出

· Python编程
import time
tic = time.time()
for i in range(1,4):time.sleep(1)
toc = time.time()
print (toc-tic)
· Python输出

———————————————————————————————————
4.5 生成随机数和随机数矩阵
· Matlab编程
a = rand
b = rand(2,3)
· Matlab输出

· Python编程
import numpy
a = numpy.random.rand()
b = numpy.random.rand(2,3)
print(a)
print(b)
· Python输出

———————————————————————————————————
5. Python编程笔记
5.1 元组添加元素
· 程序
a = (1,2) # 必须存在2个及以上的元素
b = a + (3,) # 必须加‘,’
print(b)
· 输出

5.2 字典按照索引取数据
· 程序
a = {'L': 'On',\'W': 'Off', \'S': 'On'}
Output0 = tuple(a.items())[0]
Output01 = tuple(a.items())[0][1]
print(Output0)
print(Output01)
· 输出

———————————————————————————————————
……
2022.10.02 / 21:16 / me : 希望后面的“me”能够继续更新,这次写到了第12条。
2022.10.03 / 14:14 / me:收到,接力。
2022.10.03 / 15:15 / me:本次结束,更新到第18条,同样后面的“me”能够继续更新。
2022.10.05 / 19:08 / me:接力。
2022.10.05 / 20:07 / me:本次结束,更新到第23条,同样希望后面的“me”能够继续更新,再加一些就差不多了。
2022.11.05 / 13:51 / me:时隔一个月,今天花了几个小时的功夫增添了一些内容,分了一下类。之前的打算是把该博客作为一个入门,以后编程的话另作编程笔记。今天整理之后觉得可以直接把笔记记到这里,也方便后面随时取用,所以增添了第5章。
代码有疏漏或是改进的地方,欢迎指正!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
