1 解压文件
把下载的工具箱解压到matlab中的toolbox文件夹里,
2 添加目录
matlab主界面:File——>Set Path...——>点击Add with subfolders...
在浏览文件中,选择刚才的安装路径C:\Program Files\MATLAB\R2012a\toolbox\DeepLearnToolbox-master,点击确定
返回到Set Path对话框,点击左下角的保存按钮,点击Close关闭对话框
3 更新工具箱路径缓存
matlab主界面:File——>Preferences——>General——>选中enable toolbox path cache——>点击updata toolbox path cache
关闭Preferences对话框。
工具箱彻底安装完毕
参考:http://blog.sciencenet.cn/blog-633617-630878.html ;
matlab 程序打包成exe文件
1选择合适的编译器
mbuild -setup
mcc -m myfunction.m
等一小会儿,myfunction.exe就生成了。
参考http://pan.baidu.com/s/1c0vRnLu,第30页
matlab数据归一化
归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,且sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。归一化是统一在0-1之间的统计概率分布,当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。另外在数据中常存在奇异样本数据,奇异样本数据存在所引起的网络训练时间增加,并可能引起网络无法收敛。为了避免出现这种情况及后面数据处理的方便,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。
在matlab里面,用于归一化的方法共有三种:
(1)用matlab语言自己编程,通常使用的函数有以下几种:
1.线性函数转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue) (归一到0 1 之间)
y=0.1+(x-min)/(max-min)*(0.9-0.1)(归一到0.1-0.9之间)
说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。
2.对数函数转换,表达式如下:
y=log10(x)
说明:以10为底的对数函数转换。
3.反余切函数转换,表达式如下:
y=atan(x)*2/PI
(2)premnmx、tramnmx、postmnmx、mapminmax
premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。
premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T),其中P,T分别为原始输入和输出数据。
在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx函数:
tramnmx语句的语法格式是:[PN]=tramnmx(P,minp,maxp)
其中P和PN分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。
网络输出结果需要进行反归一化还原成原始的数据,常用的函数是:postmnmx。
postmnmx语句的语法格式是:[PN] = postmnmx(P,minp,maxp)
其中P和PN分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。
还有一个函数是mapminmax,该函数可以把矩阵的每一行归一到[-1 1].
mapminmax语句的语法格式是:[y1,PS] = mapminmax(x1)
其中x1 是需要归一的矩阵 y1是结果。
当需要对另外一组数据做归一时,就可以用下面的方法做相同的归一了
y2 = mapminmax('apply',x2,PS)
当需要把归一的数据还原时,可以用以下命令:
x1_again = mapminmax('reverse',y1,PS)
(3)prestd、poststd、trastd
prestd归一到单位方差和零均值。
pminp和maxp分别为P中的最小值和最大值。mint和maxt分别为T的最小值和最大值。
参考地址:http://blog.sina.com.cn/s/blog_4aee288a0100ibt3.html、
matlab快捷键使用
1.选择需要注释的语句块以后,使用“Ctrl+R”可以进行Matlab语句注释;使用“Ctrl+T”可以进行语句块的解注释;“Ctrl+Z”撤销输入行;“Ctrl+I”自动缩进 自动排版,对多行有效, “Ctrl+ C”组合键能够强制从运行的或者进入死循环的Matlab程序中退出;
2.Figure画图改变时间长度 Tools/External Model Control Panel/Signal & Triggering /duration 采样点数量调节就行了乘以步长就是采样时间; 3.在Matlab中,“...”(3个句点)称为“续行符”,表示同一语句的延续输入; 注意:只有当续行符出现在变量名和运算符之间,才能起到语句延续的作用。出现在一个变量名中间时,是不能实现语句延续的。换句话说,变量名不能分割成两行书写。
4.设置背景颜色为白色 set(0,'defaultfigurecolor','w')
5. 如何将MAtlab中默认的current folder修改为自己想要的路径,每次启动后都默认是自己
设定的这个路径?
>>右键matlab 快捷方式,属性-快捷方式-起始位置 填入你自己的工作目录.. 6.把图复制到WORD文件的方法:电机EDIT—>Copy Figure—>Ctrl+V
6、特殊矩阵:
元素全为1的矩阵:ones 元素全为0的矩阵:zeros
单位阵:eye 魔方阵:magic
线性变化数组:linspace 聚合矩阵:cat/horzcat/vertcat
7、矩阵分析:
左右翻转:fliplr 上下翻转:flipud 转置:transpose
矩阵求逆:inv 矩阵范数:norm 条件数:cond
8 、初等变换:rref 特征值:eig/eigs
9、.使用空格和逗号隔开的元素指定的是同一行的元素,使用分号或者回车分开的元素指定的是不同行的元素。
matlab神经网络工具箱调用
train.m
clear all;
%生成训练数据和目标值
p=[0 0; 1 0; 0 1; 1 1]';
t=[1 0; 0 1; 0 1; 1 0]';
'训练BP网络开始...'
%创建BP网络
net = newff(minmax(p),[5 2],{'logsig' 'logsig'},'traingda');
%初始化BP网络,包括:权值和偏置的初值
net = init(net);
%设置训练参数和训练BP网络
net.trainParam.epochs = 5000;
net.trainParam.goal = 0.001;
net.trainParam.show = 10;
%训练BP神经网络
net = train(net,p,t);
%存储训练后的BP网络
save My_NET net;
'训练BP网络结束!'
test.m
clear all;
load My_NET;
'测试BP网络...'
%生成训练数据和目标值
p=[0 0; 1 0; 0 1; 1 1]';
t=[1 0; 0 1; 0 1; 1 0]';
%使用已训练好的网络进行测试
a = sim(net,p);
%a=a>0.5; %当a>0.5时,令a=1;否则,a=0.
'测试结束!'
10.PCA的使用
function MyPCA()
%这个程序一共需要调用两个子函数 pca.m 和 projectData.m
x = load ('iris.data');
[U, S] = pca(x);
%S代表每个特征的重要性
K = 3;
sum( sum(S(1:K,:)) )/sum( sum(S) ) %前K个特征就占了总特征的百分比
K=3;
Z = projectData(x, U, K);
X=Z;
end
pca.m文件的内容
function [U, S] = pca(X)
%PCA Run principal component analysis on the dataset X
% [U, S, X] = pca(X) computes eigenvectors of the covariance matrix of X
% Returns the eigenvectors U, the eigenvalues (on diagonal) in S
%
% Useful values
[m, n] = size(X);
% You need to return the following variables correctly.
U = zeros(n);
S = zeros(n);
% ====================== YOUR CODE HERE ======================
% Instructions: You should first compute the covariance matrix. Then, you
% should use the "svd" function to compute the eigenvectors
% and eigenvalues of the covariance matrix.
%
% Note: When computing the covariance matrix, remember to divide by m (the
% number of examples).
%
sigma=zeros(n,n);
sigma=(X'*X)/m;
[U, S, V] = svd(sigma);
% =========================================================================
end
projectData.m文件的内容
function Z = projectData(X, U, K) %取前K个特征值
%PROJECTDATA Computes the reduced data representation when projecting only
%on to the top k eigenvectors
% Z = projectData(X, U, K) computes the projection of
% the normalized inputs X into the reduced dimensional space spanned by
% the first K columns of U. It returns the projected examples in Z.
%
% You need to return the following variables correctly.
Z = zeros(size(X, 1), K);
% ====================== YOUR CODE HERE ======================
% Instructions: Compute the projection of the data using only the top K
% eigenvectors in U (first K columns).
% For the i-th example X(i,:), the projection on to the k-th
% eigenvector is given as follows:
% x = X(i, :)';
% projection_k = x' * U(:, k);
U_reduce = U(:, 1:K);
Z = X * U_reduce;
% =============================================================
end
11. 求一个矩阵的众数
[a,b] = mode(X) a表示这个众数,b表示众数所在的位置
12. matlab求定积分
syms x; %定义变量x
f = int(x*x,x,1,5); %求x*x的定积分,积分变量是x,积分区间是1到5