导航:首页 > 编程语言 > python中的mat函数

python中的mat函数

发布时间:2022-07-20 03:44:46

1. 如何读取mat文件 python

一、mat文件

mat数据格式是Matlab的数据存储的标准格式。在Matlab中主要使用load()函数导入一个mat文件,使用save()函数保存一个mat文件。对于文件

二、python中读取mat文件

在python中可以使用scipy.io中的函数loadmat()读取mat文件,函数savemat保存文件。

1、读取文件

如上例:

#coding:UTF-8


import scipy.io as scio

dataFile = 'E://data.mat'
data = scio.loadmat(dataFile)

注意,读取出来的data是字典格式,可以通过函数type(data)查看。

print type(data)


结果显示

<type 'dict'>


找到mat文件中的矩阵:

print data['A']

结果显示

[[ 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
。。。。。。。。。。。
0. 0. 0. 0. 0. 0. 0.
0.36470588 0.90196078 0.99215686 0.99607843 0.99215686 0.99215686
0.78431373 0.0627451 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
。。。。。。。。。。。。
0.94117647 0.22745098 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0.30196078
。。。。。。。
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. ]]


格式为:

<type 'numpy.ndarray'>


即为numpy中的矩阵格式。

2、保存文件

将这里的data['A']矩阵重新保存到一个新的文件dataNew.mat中:

dataNew = 'E://dataNew.mat'
scio.savemat(dataNew, {'A':data['A']})

2. python opencv 表示mat类型吗

、Mat类型:矩阵类型Matrix
openCVMat维密集数据数组用处理向量矩阵、图像、直图等等见维数据
Mat3重要:
1、Mat mat = imread(const String* filename); 读取图像
2、imshow(const string frameName, InputArray mat); 显示图像
3、imwrite (const string& filename, InputArray img); 储存图像
Mat类型较CvMat与IplImage类型说更强矩阵运算能力支持见矩阵运算计算密集型应用CvMat与IplImage类型转化Mat类型减少计算间花费
A.Mat -> IplImage
同创建图像没复制数据
例: // 假设Mat类型imgMat图像数据存
IplImage pImg= IplImage(imgMat);
B.Mat -> CvMat
与IplImage转换类似复制数据创建矩阵
例: // 假设Mat类型imgMat图像数据存
CvMat cvMat = imgMat;

二、CvMat类型与IplImage类型:图像类型
openCVMat类型与CvMatIplImage类型都代表显示图像Mat类型侧重于计算数性较高openCVMat类型计算进行优化CvMatIplImage类型更侧重于图像openCV其图像操作(缩放、单通道提取、图像阈值操作等)进行优化
补充:IplImage由CvMat派CvMat由CvArr派即CvArr -> CvMat -> IplImage
CvArr用作函数参数论传入CvMat或IplImage内部都按CvMat处理
1.CvMat
A.CvMat-> IplImage
IplImage* img = cvCreateImage(cvGetSize(mat),8,1);
cvGetImage(matI,img);
cvSaveImage("rice1.bmp",img);
B.CvMat->Mat
与IplImage转换类似选择否复制数据
Mat::Mat(const CvMat* m, bool Data=false);
openCV没向量(vector)数据结构任何候我要表示向量用矩阵数据表示即
CvMat类型与我线性代数课程向量概念相比更抽象比CvMat元素数据类型并仅限于基础数据类型比面创建二维数据矩阵:
CvMat* cvCreatMat(int rows ,int cols , int type);
type任意预定义数据类型比RGB或者别通道数据我便CvMat矩阵表示丰富彩图像

2.IplImage
类型关系我说IplImage类型继承自CvMat类型包括其变量解析图像数据
IplImage类型较CvMat参数比depthnChannels普通矩阵类型通深度通道数同表示用32位表示RGB+Alpha.图像处理我往往深度与通道数处理做OpenCV图像表示种优化案
IplImage图像另种优化变量origin----原点计算机视觉处理重要便原点定义清楚图像源编码格式甚至操作系统都原选取产影响弥补点openCV允许用户定义自原点设置取值0表示原点位于图片左角1表示左角
dataOrder参数定义数据格式IPL_DATA_ORDER_PIXELIPL_DATA_ORDER_PLANE两种取值前者便于像素同通道数据交叉排列者表示所通道按顺序平行排列
IplImage类型所额外变量都图像表示与计算能力优化
A.IplImage -> Mat
IplImage* pImg = cvLoadImage("lena.jpg");
Mat img(pImg,0); // 0复制影像pImg与imgdata共用同记忆体位置header各自
B.IplImage -> CvMat
1:CvMat mathdr, *mat = cvGetMat( img, &mathdr );
2:CvMat *mat = cvCreateMat( img->height, img->width, CV_64FC3 );
cvConvert( img, mat );
C.IplImage*-> BYTE*
BYTE* data= img->imageData;

CvMatIplImage创建区别:
1、建立矩阵第参数行数第二参数列数
CvMat* cvCreateMat( int rows, int cols, int type );
2、建立图像CvSize第参数宽度即列数;第二参数高度即行数 CvMat矩阵相反
IplImage* cvCreateImage(CvSize size, int depth, int channels );
CvSize cvSize( int width, int height );

IplImage内部buffer每行按4字节齐CvMat没限制

补充:
A.BYTE*-> IplImage*
img= cvCreateImageHeader(cvSize(width,height),depth,channels);
cvSetData(img,data,step);
//首先由cvCreateImageHeader()创建IplImage图像制定图像尺寸深度通道数;
//由cvSetData()根据BYTE*图像数据指针设置IplImage图像数据数据
//其step指定该IplImage图像每行占字节数于1通道IPL_DEPTH_8U图像step等于width

3. 在python函数里,不用return,怎么把值送出来

题主好. 如果不用 return, 我们可以选择利用传递参数的引用来‘把值送出来’, 但这样只能针对不变对象, 如字典, 列表, numpy 数组等等. 例如我们可以用如下代码修改 numpy 数组:

mat = numpy.zeros((3,3))

compute_matrix( mat )

我们可以定义函数 compute_matrix 来修改参数 mat 的值, 并在这个函数结束后返回, 可以不用 return.


附录:

python 参数传递 (传值或传引用). 这篇博文将 python 中参数传递的情况, 什么时候传值什么时候传引用, 解释地很清楚, 具体地:

4. python里x=randn mat=x.T.dot 是求什么

x=randn这个写法是不对的,randn是numpy里的一个生成随机array的函数。

比如说要生成一个三行两列的随机array,可以这样写:

import numpy

x = numpy.random.randn(3,2)

像这样:

dot(2)是点乘常数就不说了,

那个x.T.dot([1,2,3])就是x.T的

1*1+2*2+3*3=14

2*1+3*2+4*3=20

5. 怎么在python中读写和存储matlab的数据文件(*mat)

以前也有一些开源的库(pymat和pymat2等)来做这个事,
不过自从有了numpy和scipy以后,这些库都被抛弃了.
下面是一个简单的测试程序,具体的函数用法可以看帮助文档:
import scipy.io as sio
import matplotlib.pyplot as plt
import numpy as np
#matlab文件名

6. format在python中的用法

fotmat作为Python的的格式字符串函数,主要通过字符串中的花括号{},来识别替换字段,从而完成字符串的格式化。format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。单个参数可以多次输出,参数顺序可以不相同。

python中的format函数用法

基本语法是通过{}和:来代替以前的%

1、例如输出保留两位的数字:print("{:.2f}".format(3.1456879)),且会四舍五入。

2、大括号里可以填索引,以此来保证后续format中参数的顺序位置,例如:

print("{2}{0}{1}".format("are","you","How"))

输出为Howareyou,注意索引应从0开始。

而且需要注意的是如果未填索引,那么会默认按format中参数顺序位置填充,此时大括号占位数要与format参数相等。如果填充索引,索引数需要不大于format索引数。

3、如果是双层大括号结构,则认为第二层大括号为普通字符串,不会进行格式化。例如:

print("{}对应的位置是{{普通字符串}}".format("字符串"))

输出为:字符串对应的位置是{普通字符串},注意加粗部分,第二层大括号会作为普通的字符串,不会进行格式化。

7. 用python怎么读取mat文件的三维矩阵

8. python里x=randn mat=x.T.dot 是求什么

x=randn这个写法是不对的。

randn是numpy里的一个生成随机array的函数。

比如说要生成一个三行两列的随机array,可以这样写:


import numpy

x = numpy.random.randn(3,2)

像这样:

dot(2)是点乘常数就不说了,

那个x.T.dot([1,2,3])就是x.T的

1*1+2*2+3*3=14

2*1+3*2+4*3=20


懂了木有 =。=

9. python中.mat文件怎么读取

python中读取mat文件
在python中可以使用scipy.io中的函数loadmat()读取mat文件,函数savemat保存文件。
1、读取文件
如上例:

1234567

#coding:UTF-8 import scipy.io as scio dataFile = 'E://data.mat'data = scio.loadmat(dataFile)

注意,读取出来的data是字典格式,可以通过函数type(data)查看。

1

print type(data)

结果显示

1

<type 'dict'>

找到mat文件中的矩阵:

1

print data['A']

结果显示

[[ 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
。。。。。。。。。。。
0. 0. 0. 0. 0. 0. 0.
0.36470588 0.90196078 0.99215686 0.99607843 0.99215686 0.99215686
0.78431373 0.0627451 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
。。。。。。。。。。。。
0.94117647 0.22745098 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0.30196078
。。。。。。。
0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. ]]

格式为:

<type 'numpy.ndarray'>

即为numpy中的矩阵格式。

10. python怎么实现矩阵的除法

1、首先打开pycharm软件,新建一个python文件并导入numpy库。

阅读全文

与python中的mat函数相关的资料

热点内容
java合并链表 浏览:505
pic单片机编译器 浏览:803
丽水四轴加工中心编程 浏览:689
国产系统怎么解压 浏览:552
战双程序员 浏览:483
him触摸编程软件 浏览:931
植物大战僵尸存档怎么转移安卓 浏览:852
java栈的元素 浏览:737
程序员与篮球事件 浏览:675
app反编译不完整 浏览:788
电脑上的文件夹怎么调整 浏览:7
服务器无响应是什么原因呀 浏览:984
wd文档里的app怎么制作 浏览:513
电脑里的文件夹没有了一般能恢复吗 浏览:418
哪里有配加密钥匙的 浏览:210
服务器开不了机怎么把数据弄出来 浏览:958
gif动态图片怎么压缩 浏览:521
黑猴子棒球压缩文件解压密码 浏览:631
如何让app适应不同的手机屏幕大小 浏览:10
苹果手机如何给安卓手机分享软件 浏览:761