x=randn這個寫法是不對的。
成都創(chuàng)新互聯(lián)公司專注于泊頭網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供泊頭營銷型網(wǎng)站建設,泊頭網(wǎng)站制作、泊頭網(wǎng)頁設計、泊頭網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務,打造泊頭網(wǎng)絡公司原創(chuàng)品牌,更為您提供泊頭網(wǎng)站排名全網(wǎng)營銷落地服務。
randn是numpy里的一個生成隨機array的函數(shù)。
比如說要生成一個三行兩列的隨機array,可以這樣寫:
import numpy
x = numpy.random.randn(3,2)
像這樣:
后面這個mat=x.T.dot(...)是先求這個3*3矩陣的轉置(.T),再求與點積(.dot)
點積就是矩陣各個對應元素相乘, 這個時候要求兩個矩陣必須同樣大小。
其實可以分步來的,就知道做了什么運算了。
像這樣:
dot(2)是點乘常數(shù)就不說了,
那個x.T.dot([1,2,3])就是x.T的
1*1+2*2+3*3=14
2*1+3*2+4*3=20
懂了木有 =。=
1、首先打開pycharm軟件,新建一個python文件并導入numpy庫。
2、然后創(chuàng)建矩陣A,這里先創(chuàng)建一個兩行兩列的數(shù)組,在用numpy的mat函數(shù)將數(shù)組轉換為矩陣。
3、接著計算矩陣A的逆矩陣,逆矩陣是通過A.I求得。
4、求出了矩陣A的逆矩陣后,用矩陣B乘以這個逆矩陣就是矩陣的除法了,即為矩陣B除以矩陣A的值。
"""
Created on Sun Nov 29 16:40:18 2020
本工具主要用于mat文件的讀?。╩atlab-v7.3格式)
主要分為3個部分:1 常規(guī)mat中的變量
? ? ? ? ? ? 2 mat文件中的cell內(nèi)部數(shù)據(jù)讀取
? ? ? ? ? ? 3 mat文件中的struct數(shù)據(jù)讀取
@author: ZXY
"""
"""
1 常規(guī)mat中的變量
"""
import h5py
b=[]
#首先用h5py讀取mat文件,并找到對應的struct 位置。
data = h5py.File("./1.mat",'r')
ecg=data["ecg"].value
"""
2 mat文件中的cell內(nèi)部數(shù)據(jù)讀取
"""
import h5py
b=[]
#首先用h5py讀取mat文件,并找到對應的struct 位置。
data = h5py.File("./2.mat",'r')
zx1=data["ecg_all"]#找到struct的頂部
for i in range(zx1.shape[0]):
ecg=data[zx1[i][0]].value
"""
3 mat文件中的struct數(shù)據(jù)讀取
"""
import h5py
b=[]
#首先用h5py讀取mat文件,并找到對應的struct 位置。
data = h5py.File("./3.mat",'r')
zx1=data["ecgpart"]#找到struct的頂部
test = data['ecgpart/data']#找到struct中要提取的子集
for i in test[:,0]:?
? ? ecg=zx1[i].value
、Mat類型:矩陣類型Matrix
openCVMat維密集數(shù)據(jù)數(shù)組用處理向量矩陣、圖像、直圖等等見維數(shù)據(jù)
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
同創(chuàng)建圖像沒復制數(shù)據(jù)
例: // 假設Mat類型imgMat圖像數(shù)據(jù)存
IplImage pImg= IplImage(imgMat);
B.Mat - CvMat
與IplImage轉換類似復制數(shù)據(jù)創(chuàng)建矩陣
例: // 假設Mat類型imgMat圖像數(shù)據(jù)存
CvMat cvMat = imgMat;
二、CvMat類型與IplImage類型:圖像類型
openCVMat類型與CvMatIplImage類型都代表顯示圖像Mat類型側重于計算數(shù)性較高openCVMat類型計算進行優(yōu)化CvMatIplImage類型更側重于圖像openCV其圖像操作(縮放、單通道提取、圖像閾值操作等)進行優(yōu)化
補充:IplImage由CvMat派CvMat由CvArr派即CvArr - CvMat - IplImage
CvArr用作函數(shù)參數(shù)論傳入CvMat或IplImage內(nèi)部都按CvMat處理
1.CvMat
A.CvMat- IplImage
IplImage* img = cvCreateImage(cvGetSize(mat),8,1);
cvGetImage(matI,img);
cvSaveImage("rice1.bmp",img);
B.CvMat-Mat
與IplImage轉換類似選擇否復制數(shù)據(jù)
Mat::Mat(const CvMat* m, bool copyData=false);
openCV沒向量(vector)數(shù)據(jù)結構任何候我要表示向量用矩陣數(shù)據(jù)表示即
CvMat類型與我線性代數(shù)課程向量概念相比更抽象比CvMat元素數(shù)據(jù)類型并僅限于基礎數(shù)據(jù)類型比面創(chuàng)建二維數(shù)據(jù)矩陣:
CvMat* cvCreatMat(int rows ,int cols , int type);
type任意預定義數(shù)據(jù)類型比RGB或者別通道數(shù)據(jù)我便CvMat矩陣表示豐富彩圖像
2.IplImage
類型關系我說IplImage類型繼承自CvMat類型包括其變量解析圖像數(shù)據(jù)
IplImage類型較CvMat參數(shù)比depthnChannels普通矩陣類型通深度通道數(shù)同表示用32位表示RGB+Alpha.圖像處理我往往深度與通道數(shù)處理做OpenCV圖像表示種優(yōu)化案
IplImage圖像另種優(yōu)化變量origin----原點計算機視覺處理重要便原點定義清楚圖像源編碼格式甚至操作系統(tǒng)都原選取產(chǎn)影響彌補點openCV允許用戶定義自原點設置取值0表示原點位于圖片左角1表示左角
dataOrder參數(shù)定義數(shù)據(jù)格式IPL_DATA_ORDER_PIXELIPL_DATA_ORDER_PLANE兩種取值前者便于像素同通道數(shù)據(jù)交叉排列者表示所通道按順序平行排列
IplImage類型所額外變量都圖像表示與計算能力優(yōu)化
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創(chuàng)建區(qū)別:
1、建立矩陣第參數(shù)行數(shù)第二參數(shù)列數(shù)
CvMat* cvCreateMat( int rows, int cols, int type );
2、建立圖像CvSize第參數(shù)寬度即列數(shù);第二參數(shù)高度即行數(shù) CvMat矩陣相反
IplImage* cvCreateImage(CvSize size, int depth, int channels );
CvSize cvSize( int width, int height );
IplImage內(nèi)部buffer每行按4字節(jié)齊CvMat沒限制
補充:
A.BYTE*- IplImage*
img= cvCreateImageHeader(cvSize(width,height),depth,channels);
cvSetData(img,data,step);
//首先由cvCreateImageHeader()創(chuàng)建IplImage圖像制定圖像尺寸深度通道數(shù);
//由cvSetData()根據(jù)BYTE*圖像數(shù)據(jù)指針設置IplImage圖像數(shù)據(jù)數(shù)據(jù)
//其step指定該IplImage圖像每行占字節(jié)數(shù)于1通道IPL_DEPTH_8U圖像step等于width
若文件位于同一文件夾下的data文件夾中data.mat
import scipy.io as scio
import pandas as pd
data = scio.loadmat('./data/data.mat')
df=pd.DataFrame(['dat'])