




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实用文档关于matlab系列无法调用mapminmax函数的解决方法
matlab7.0/7.1以及以下版本的函数库中没有mapminmax函数,所以编程调用这个函数时会提示未定义该函数,查了写资料,但是网友回答的太不靠谱了,我自己做了下总结,方法如下:
1.matlab升级到7.8或者以上版本,这些版本的matlab中自带有mapminmax函数,可以直接调用。
2.不想升级的话,我们就要自己写mapminmax函数了,这里我提供mapminmax函数的源程序如下:
function[out1,out2]=mapminmax(in1,in2,in3,in4)%MPMINMAXMapmatrixrowminimumandmaximumvaluesto[-11].%
%Syntax
%
%[y,ps]=mapminmax(x,ymin,ymax)
%[y,ps]=mapminmax(x,fp)
%y=mapminmax('apply',x,ps)
%x=mapminmax('reverse',y,ps)
%dx_dy=mapminmax('dx',x,y,ps)
%dx_dy=mapminmax('dx',x,[],ps)
%name=mapminmax('name');
%fp=mapminmax('pdefaults');
%names=mapminmax('pnames');
%mapminmax('pcheck',fp);
%
%Description
%
%MAPMINMAXprocessesmatricesbynormalizingtheminimumandmaximumvalues
%ofeachrowto[YMIN,YMAX].
%
%MAPMINMAX(X,YMIN,YMAX)takesXandoptionalparameters,
%X-NxQmatrixora1xTSrowcellarrayofNxQmatrices.
%YMIN-MinimumvalueforeachrowofY.(Defaultis-1)
%YMAX-MaximumvalueforeachrowofY.(Defaultis+1)
%andreturns,
%Y-EachMxQmatrix(whereM==N)(optional).
%PS-Processsettings,toallowconsistentprocessingofvalues.
%
%MAPMINMAX(X,FP)takesparametersasstruct:FP.ymin,FP.ymax.
%MAPMINMAX('apply',X,PS)returnsY,givenXandsettingsPS.
%MAPMINMAX('reverse',Y,PS)returnsX,givenYandsettingsPS.
%MAPMINMAX('dx',X,Y,PS)returnsMxNxQderivativeofYw/respecttoX.
%MAPMINMAX('dx',X,[],PS)returnsthederivative,lessefficiently.
%MAPMINMAX('name')returnsthenameofthisprocessmethod.
%MAPMINMAX('pdefaults')returnsdefaultprocessparameterstructure.
%MAPMINMAX('pdesc')returnstheprocessparameterdescriptions.
%MAPMINMAX('pcheck',fp)throwsanerrorifanyparameterisillegal.
%
%Examples
%
%Hereishowtoformatamatrixsothattheminimumandmaximum
%valuesofeachrowaremappedtodefaultinterval[-1,+1].
%
%x1=[124;111;322;000]
%[y1,ps]=mapminmax(x1)
%
%Next,weapplythesameprocessingsettingstonewvalues.
%
%x2=[523;111;673;000]
%y2=mapminmax('apply',x2,ps)
%
%Herewereversetheprocessingofy1togetx1again.
%
%x1_again=mapminmax('reverse',y1,ps)
%
%Algorithm
%
%ItisassumedthatXhasonlyfiniterealvalues,andthat
%theelementsofeachrowarenotallequal.
%
%y=(ymax-ymin)*(x-xmin)/(xmax-xmin)+ymin;
%
%SeealsoFIXUNKNOWNS,MAPSTD,PROCESSPCA,REMOVECONSTANTROWS%Copyright1992-2006TheMathWorks,Inc.
%$Revision:$
%Processfunctionboilerplatescript
boiler_process%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Name
functionn=name
n='MapMinimumandMaximum';%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ParameterDefaults
functionfp=param_defaults(values)iflength(values)>=1,fp.ymin=values{1};elsefp.ymin=-1;end
iflength(values)>=2,fp.ymax=values{2};elsefp.ymax=fp.ymin+2;end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ParameterNames
functionnames=param_names()
names={'MininumvalueforeachrowofY.','MaximumvalueforeachrowofY.'};%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ParameterCheck
functionerr=param_check(fp)mn=fp.ymin;
mx=fp.ymax;
if~isa(mn,'double')||any(size(mn)~=[11])||~isreal(mn)||~isfinite(mn)
err='yminmustbearealscalarvalue.';
elseif~isa(mx,'double')||any(size(mx)~=[11])||~isreal(mx)||~isfinite(mx)||(mx<=mn)
err='ymaxmustbearealscalarvaluegreaterthanymin.';
else
err='';
end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%NewProcess
function[y,ps]=new_process(x,fp)ifany(any(~isfinite(x)))
error('UseFIXUNKNOWNStoreplaceNaNvaluesinX.');
='mapminmax';
ps.xrows=size(x,1);
ps.yrows=ps.xrows;
ps.xmax=max(x,[],2);
ps.xmin=min(x,[],2);
ps.ymax=fp.ymax;
ps.ymin=fp.ymin;ifany(ps.xmax==ps.xmin)
warning('UseREMOVECONSTANTROWStoremoverowswithconstantvalues.');
endy=apply_process(x,ps);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ApplyProcess
functiony=apply_process(x,ps)Q=size(x,2);
oneQ=ones(1,Q);
rangex=ps.xmax-ps.xmin;
rangex(rangex==0)=1;%Avoiddivisionsbyzero
rangey=ps.ymax-ps.ymin;
y=rangey*(x-ps.xmin(:,oneQ))./rangex(:,oneQ)+ps.ymin;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ReverseProcess
functionx=reverse_process(y,ps)Q=size(y,2);
oneQ=ones(1,Q);
rangex=ps.xmax-ps.xmin;
rangey=ps.ymax-ps.ymin;
x=rangex(:,oneQ).*(y-ps.ymin)*(1/rangey)+ps.xmin(:,oneQ);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%DerivativeofYw/respecttoX
functiondy_dx=derivative(x,y,ps);Q=size(x,2);
rangex=ps.xmax-ps.xmin;
rangey=ps.ymax-ps.ymin;
d=diag(rangey./rangex);
dy_dx=d(:,:,ones(1,Q));
复制以上代码,在matlab中生成M文件,文件名取为mapminmax.m,然后放到currentDirectory路径中的work文件夹里面(这是我的工作空间),你们也可以放到自己的工作空间文件夹里面,这还没完,编译程序是还会提示木有boiler_process函数的提示,boiler_process函数源程序如下:%PROCESSFUNCTIONBOILERPLATECODE%Copyright2005-2007TheMathWorks,Inc.%TODO-AddsizecheckingforXandYif(nargin<1),error('NNET:Arguments','Notenougharguments.');endifisstr(in1)
switchlower(in1)
case'name',
ifnargin>1,error('NNET:Arguments','Toomanyinputargumentsfor''name''action'),end
if(nargout>1),error('NNET:Arguments','Toomanyoutputargumentsfor''name''action'),end
out1=name;
case'pdefaults'
ifnargin>2,error('NNET:Arguments','Toomanyinputargumentsfor''pdefaults''action'),end
ifnargin<2,in2={};end
if(nargout>1),error('NNET:Arguments','Toomanyoutputargumentsfor''pdefaults''action'),end
out1=param_defaults(in2);
case'pnames'
ifnargin>1,error('NNET:Arguments','Toomanyinputargumentsfor''pnames''action'),end
if(nargout>1),error('NNET:Arguments','Toomanyoutputargumentsfor''pnames''action'),end
out1=param_names;
case'pcheck'
if(nargin<2),error('NNET:Arguments','Notenoughinputargumentsfor''pcheck''action'),end
ifnargin>2,error('NNET:Arguments','Toomanyinputargumentsfor''pcheck''action'),end
if(nargout>1),error('NNET:Arguments','Toomanyoutputargumentsfor''pcheck''action'),end
if~isa(in2,'struct'),error('NNET:Arguments','Parametersarenotastruct.');end
names1=fieldnames(param_defaults({}));
names2=fieldnames(in2);
iflength(names1)~=length(names2),error('NNET:Arguments','Incorrectnumberofparameters.');end
names1=sort(names1);
names2=sort(names2);
fori=1:length(names1)
if~strcmp(names1{i},names2{i}),error('NNET:Arguments',['Parameterfieldnameisnotcorrect:'names2{i}]);end
end
out1=param_check(in2);
if(nargout==0)&&~isempty(out1)
error('NNET:Arguments',out1);
end
case'apply'
if(nargin<3),error('NNET:Arguments','Notenoughinputargumentsfor''apply''action.');end
if(nargin>3),error('NNET:Arguments','Toomanyinputargumentsfor''apply''action'),end
if(nargout>1),error('NNET:Arguments','Toomanyoutputargumentsfor''apply''action'),end
c=iscell(in2);
ifc
if(size(in2,1)~=1)
error('NNET:Arguments','CellarrayXmusthaveonlyonerow')
end
cols=size(in2,2);
colSizes=zeros(1,cols);
fori=1:cols
colSizes(i)=size(in2{1,i},2);
end
in2=cell2mat(in2);
elseif~isa(in2,'double')
error('NNET:Arguments','Xmustbeamatrixorarowcellarray')
end
out1=apply_process(in2,in3);
ifc
out1=mat2cell(out1,size(out1,1),colSizes);
end
case'reverse'
if(nargin<3),error('NNET:Arguments','Notenoughinputargumentsfor''reverse''action.');end
if(nargin>3),error('NNET:Arguments','Toomanyinputargumentsfor''reverse''action'),end
if(nargout>1),error('NNET:Arguments','Toomanyoutputargumentsfor''reverse''action'),end
c=iscell(in2);
ifc
if(size(in2,1)~=1)
error('NNET:Arguments','CellarrayXmusthaveonlyonerow')
end
cols=size(in2,2);
colSizes=zeros(1,cols);
fori=1:cols,colSizes(i)=size(in2{1,i},2);end
in2=cell2mat(in2);
elseif~(isnumeric(in2)||islogical(in2))
error('NNET:Arguments','Ymustbeamatrixorarowcellarray')
end
out1=reverse_process(in2,in3);
ifc
out1=mat2cell(out1,size(out1,1),colSizes);
end
out2=in3;
case'dx'
if(nargin<4),error('NNET:Arguments','Notenoughinputargumentsfor''dx''action.');end
if(nargout>1),error('NNET:Arguments','Toomanyoutputargumentsfor''dx''action'),end
ifisempty(in3)
in3=apply_process(in2,in4);
end
out1=derivative(in2,in3,in4);
case'dx_dy'
if(nargin<4),error('NNET:Arguments','Notenoughinputargumentsfor''dx''action.');end
if(nargout>1),error('NNET:Arguments','Toomanyoutputargumentsfor''dx''action'),end
ifisempty(in3)
in3=apply_process(in2,in4);
end
out1=reverse_derivative(in2,in3,in4);
case'simulink_params'
out1=simulink_params(in2);
case'simulink_reverse_params'
out1=simulink_reverse_params(in2);
otherwise
error('NNET:Arguments',['Firstargumentisanunrecognizedactionstring:'in1]);
end
return
endif(nargin<2)
in2=param_defaults({});
elseifisa(in2,'struct')
if(nargin>2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国有光人字提花布数据监测报告
- 新疆第二医学院《中国传统文化与中医》2023-2024学年第一学期期末试卷
- 2025届河北省金太阳-邢襄联盟高三上学期开学考(25-05C)-化学试题(含答案)
- 2025年中国斜挂袋市场调查研究报告
- 2025年中国数字式现场录像机市场调查研究报告
- 2025-2030年中国丁苯喹嗪行业前景调查及未来风险评估报告
- 2025至2031年中国美味金枪鱼罐头行业投资前景及策略咨询研究报告
- 肇庆市实验中学高中历史三:第课孔子与老子教案
- 2025至2031年中国纳米罗马杆行业投资前景及策略咨询研究报告
- 新疆生产建设兵团一师高中2025届高三毕业班联考数学试题试卷含解析
- ISO13485质量管理手册
- 辩论赛PPT模板模板
- 发电厂贮灰场突发环境事件应急预案
- 2023年高考全国乙卷作文“一花独放不是春百花齐放春满园”写作
- 建材公司质量管理手册(模板范文)
- 钳工中级知识培训课件
- GB/T 42706.2-2023电子元器件半导体器件长期贮存第2部分:退化机理
- 高考语文新题型+“文学短评”相关写作(真题+技法+练习)
- 幼儿园小班数学活动《认识里外》教学PPT课件【幼儿教案】
- 国开【形考】《管理英语(3)》形成性考核1-8答案
- 2023学年完整公开课版用户思维
评论
0/150
提交评论