Matlab学习笔记-2

引言

对这几天的用到的东西做一个总结。虽然现在网络还没跑起来。

matlab保存mat文件

save()函数,详细可以到matlab命令行输入doc save

matlab读取某文件夹下所有文件

matlab读取文件夹下所有文件, dir('/folder/')得到struct,包含fields name date bytes isdir datenum等属性,需要取name属性并存储所有cell(或称单元数组)型然后对数据加以利用;
举例如下,读取文件夹下所有数据,然后挨个imread()

allfile = dir('/media/yann/FILE/GitLab/Graduation/Data_Kidney/1_nucleus/*.jpg');
allname = {allfile.name};
for j = 1:1:length(allname)
filename = ['/media/yann/FILE/GitLab/Graduation/Data_Kidney/1_nucleus/', char(allname(j))];
A = imread(filename);
end

NOTE:cell型数组里的数据仍旧是cell,无法与str连接,必要时需要用char()函数将cell数据转化为str;或者可以用strcat()将两个字符串链接起来

python读取mat文件

from scipy import io
data = io.loadmat('/home/yann/1.mat') # 读取mat文件
type(data) # 得到data为字典格式
data.keys() #查看所有键
imgdata = data['img'] # 保存键img对应值为imgdata,然后可以操作数据

numpy的矩阵叠加

import numpy as np
trainY1 = np.zeros((1000,2)).astype(np.int32)
trainY2 = np.ones((1000,2)).astype(np.int32)
trainY = np.concatenate((trainY1,trainY2),axis = 0) # np.concatenate()
trainY.shape # 得到(2000,2)

python随机打乱数据顺序

import numpy as np
pi = np.random.permutation(len(trainX)) #随机生成len(trainX)个元素的array 随机排列
trainX, trainY = trainX[pi], trainY[pi]
#以上两行的目的是为了随机打乱数据的次序 同时又保持data与label的对应性

参考链接