Matlab与Python的对比学习

输入输出保存函数

Python

输入input函数

name = input("请输入您的姓名:")
print("您好," + name + "!") #使用+连接字符串,则输出的没有空格,用逗号则会有

#输入多个
a, b, c = input('输入a,b空格隔开:').split()
print(type(a))
print(type(b))
print(type(c))

>>>
输入a,b,c空格隔开:1 2 3
<class 'str'>
<class 'str'>
<class 'str'>

#以上的输出是字符串类型,若需要是整数类型
a, b, c = map(int, input('输入a,b,c用空格隔开:').split())
print(type(a))
print(type(b))
print(type(c))

>>>
输入a,b,c用空格隔开:1 2 3
<class 'int'>
<class 'int'>
<class 'int'>

输出print函数

# 输出多个值
name = "Alice"
age = 30
print("My name is", name, "and I am", age, "years old.")#有空格
print("My name is"+name+"and I am"+age+"years old.")#紧密相连

### 指定分隔符
print("1", "2", "3", sep="-")

##其实无论单引号还是双引号,大多数情况都是通用的,两个都可以,但还是建议都用单引号

# print(f'')的用法
T= time.time()-T0
print(f"\n Total time elapsed : {T} s")

##
a = 1
b = 2
c = 3
print(f'a={a}, b={b}, c={c}')
# 等价于print('a={}, b={}, c={}'.format(a, b, c))

结果:
a=1, b=2, c=3

打开载入文件

1.内置函数 open函数

若原文件名不存在,则创建该文件

f = open(filename, mode = ‘r’, buffering = -1)

## mode为可选参数,默认值为r( r:读,w:写(先清空文件),a: 追加)

在打开文件的基础上,有读和写入函数  f.read(), f.write(),f.close()——对象名.方法名

with open('data.txt','w') as f:
	f.write("Hello,番茄大人")
with open('data.txt') as f:
	p1 = f.read(5)#读前5个字符
	p2 = f.read()#读剩下的字符
>>
'Hello'
',番茄大人'


这个和h5py函数很类似
##同样不存在则创建,同样有mode三个参数,同样有对应的f.create_group,f.create_dataset等函数

with h5py.File("Cifar.h5", 'a') as f:  
   vs_group1 = f.create_group("train") # 在根目录下创建gruop文件夹:trains
   hf.close()

2.numpy库函数 np.load

#读取数组数据, .npy文件
ar_load = np.load('arraytest.npy')
print(ar_load)
#也可以直接np.load(r'C:\python数据分析\arraytest.npy')

或者
res_data1 = np.load(file="datasp_total.npy")

保存文件

np.save函数 numpy学习(五)——文件的保存和读写(np.save()、np.load()、np.savez()、np.savetxt()、np.loadtxt())_徕胖的博客-CSDN博客

np.save(file, arr)

#file 要保存的文件名称,需指定文件保存路径,如果未设置,保存到默认路径。其文件拓展名为.npy
#arr 为需要保存的数组,也即把数组arr保存至名称为file的文件中。

如果你想将多个数组保存到一个文件中的话,可以使用numpy.savez函数

ar1 = np.random.rand(2,3)
ar2 = np.arange(4)
np.savez(r'C:\python数据分析\arraytest1.npz',ar1,ar2)

#savez函数输出的是一个压缩文件(扩展名为npz),其中每个文件都是一个save函数保存的npy文件,文件名对应于数组名。

r = np.load(r'C:\python数据分析\arraytest1.npz')
print(r)
print(r['arr_0'])

#load函数自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为关键字获取数组的内容。

MATLAB

输入函数 input

 MATLAB的输入与输出函数_matlab输入函数_zhangjemm的博客-CSDN博客

由于 MATLAB不使用 stdin 和 stdout,而是使用command window进行交互。因此不需要使用 scanf 和 printf 等 C/C++ 函数来提示用户进行输入。但在某些情况下需要提示用户进行输入并打印相关结果时,可使用如下函数

a = input('');                          %不含提示的单个数值输入
a = input('Please input a number:');    %含提示的单个数值输入

a = input('', 's');                          %不含提示的字符串输入
a = input('Please input a string:', 's');    %含提示的字符串输入

a = input('', 's');   %以字符串读入
a = str2num(a);       %将字符串转化为一维向量,方便后续处理
#num2str也很常用,经常在disp函数中用到

输出函数 disp

disp()函数表示显示变量的值,对于单个数值、字符串、数组、矩阵都按照其格式显示

A=[1 2;3,4];
disp(A)
>>
1 2
3 4


A = 'Hello World ! ';
disp(A)
>> Hello World !

toc = 100;
disp(['Modified Gerchberg-Saxton iteration end! ... Elapsed time: ', num2str(toc),'s'])
##这里必须要有中括号,不然会报错

另外还有 fprintf

fprintf()函数  为格式化输出函数

a = 3.1415926;
fprintf('PI is %.5f.\n', a);
>>
pi is 3.14159.

载入函数 load

load(filename,variables)

load('file.mat',y) %仅加载文件中的y变量

%当然,还可以使用命令语法来 load

load file.mat y

保存函数 save

save example %则会把当前目录中的变量全部保存到example.mat 文件

save example x y z %指定xyz保存

当然不用命令语法也行
save(‘D:\\example.mat’) 

自定义函数

 Python自定义函数

def load_dataset(file_location,what_to_load):
    hf = h5py.File( file_location , 'r')
    fl = hf[what_to_load]
    Rarray = np.array(fl)
    hf.close()
    return Rarray

 Matlab自定义函数 

function K = RPS1(channels,modes)
  T0=randn(channels,modes)+1i*randn(channels,modes);
  [U,S,V]=svd(T0);    
  SM = max(max(S));
  K=T0/SM;

end

 

 工具包与函数库

 python函数库,比如下面图中的几种最常用的,除了Python内置函数,这些库函数提供更快捷的编程功能。

 

Matlab中的函数也是通过工具包toolbox来提供的,下载的matlab软件会自带一些toolboxMATLAB工具箱介绍_matlab 工具箱简介-CSDN博客,比如Image Processing Toolbox——Image Processing Toolbox Documentation - MathWorks 中国,常用的imread等函数就是里面的。当然你也可以下载新的toolbox来方便你的编程实现特定的功能。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值