我遇到的问题
安装
- 按照错误提示,重新设置了目标路径:
WAVELABPATH =
‘E:\MATLAB\R2018\toolbox\Wavelab850’
具体错误原因可以打开对应的.m文件查看
- c文件编译成功后,显示:
系统找不到指定的文件
【解决方式】
打开InstallMEX.m,修改语句,
% eval(sprintf('cd ''%sMEXSource''', WAVELABPATH));
cd('E:/software/Matlab/toolbox/WAVELAB850/MEXSource');
我的电脑是PC,
elseif isPC,
dos('move CPAnalysis.dll ..\Packets\One-D');
按照脚本中的描述,应当移动CPAnalysis.dll
到指定文件夹。
我在Wavelab850文件夹搜索发现,MEXSource中的CPAnalysis
文件后缀是.mexw64
于是替换了脚本中的后缀,再运行就可以批量移动了。
InstallMEX.m
function InstallMEX
global WAVELABPATH
MEX_OK = 1;
% Check if all the MEX files are installed
for file={'CPAnalysis' 'WPAnalysis' 'FWT_PO' 'FWT2_PO' 'IWT_PO' ...
'IWT2_PO' 'UpDyadHi' 'UpDyadLo' 'DownDyadHi' 'DownDyadLo' 'dct_iv' ...
'FCPSynthesis' 'FWPSynthesis' ...
'dct_ii' 'dst_ii' 'dct_iii' 'dst_iii' ...
'FWT_PBS' 'IWT_PBS' ...
'FWT_TI' 'IWT_TI' ...
'FMIPT' 'IMIPT' ...
'FAIPT' 'IAIPT' 'LMIRefineSeq' 'MedRefineSeq'}
file = char(file);
if exist(file)~=3,
MEX_OK = 0;
break;
end
end
% If not, install...
if ~MEX_OK,
disp('WaveLab detects that some or all of your MEX files are not installed,')
R=input('do you want to install them now? [[Yes]/No] \n','s');
if strcmp(R,'') + strcmp(R,'Yes') | strcmp(R,'yes') | strcmp(R,'y') | strcmp(R,'Y') | strcmp(R,'YES'),
disp('INSTALLING MEX FILES, MAY TAKE A WHILE ...')
disp(' ')
disp('WaveLab assumes that your mex compiler is properly installed.')
disp('In particular, you should be able to call mex.m within matlab')
disp('to compile a mex file.')
disp('Consult your system administrator if not.')
disp(' ')
FIRST_COMPILE = 0;
cd('E:/MATLAB/R2018/toolbox/Wavelab850/MEXSource');
% eval(sprintf('cd ''%sMEXSource''', WAVELABPATH));
for file={'CPAnalysis' 'WPAnalysis' 'FWT_PO' 'FWT2_PO' 'IWT_PO' ...
'IWT2_PO' 'UpDyadHi' 'UpDyadLo' 'DownDyadHi' 'DownDyadLo' 'dct_iv' ...
'FCPSynthesis' 'FWPSynthesis' ...
'dct_ii' 'dst_ii' 'dct_iii' 'dst_iii' ...
'FWT_PBS' 'IWT_PBS' ...
'FWT_TI' 'IWT_TI' ...
'FMIPT' 'IMIPT' ...
'FAIPT' 'IAIPT' 'LMIRefineSeq' 'MedRefineSeq'}
file = char(file);
disp(sprintf('%s.c',file));
eval(sprintf('mex %s.c',file));
end
Friend = computer;
isPC = 0; isMAC = 0;
if strcmp(Friend(1:2),'PC')
isPC = 1;
elseif strcmp(Friend,'MAC2')
isMAC = 1;
end
if isunix,
!mv CPAnalysis.mex* ../Packets/One-D
!mv WPAnalysis.mex* ../Packets/One-D
!mv FWT_PO.mex* ../Orthogonal
!mv FWT2_PO.mex* ../Orthogonal
!mv IWT_PO.mex* ../Orthogonal
!mv IWT2_PO.mex* ../Orthogonal
!mv UpDyadHi.mex* ../Orthogonal
!mv UpDyadLo.mex* ../Orthogonal
!mv DownDyadHi.mex* ../Orthogonal
!mv DownDyadLo.mex* ../Orthogonal
!mv dct_iv.mex* ../Packets/One-D
!mv FCPSynthesis.mex* ../Pursuit
!mv FWPSynthesis.mex* ../Pursuit
!mv dct_ii.mex* ../Meyer
!mv dst_ii.mex* ../Meyer
!mv dct_iii.mex* ../Meyer
!mv dst_iii.mex* ../Meyer
!mv FWT_PBS.mex* ../Biorthogonal
!mv IWT_PBS.mex* ../Biorthogonal
!mv FWT_TI.mex* ../Invariant
!mv IWT_TI.mex* ../Invariant
!mv FMIPT.mex* ../Median
!mv IMIPT.mex* ../Median
!mv FAIPT.mex* ../Papers/MIPT
!mv IAIPT.mex* ../Papers/MIPT
!mv LMIRefineSeq.mex* ../Papers/MIPT
!mv MedRefineSeq.mex* ../Papers/MIPT
elseif isPC,
dos('move CPAnalysis.mexw64 ..\Packets\One-D');
dos('move WPAnalysis.mexw64 ..\Packets\One-D');
dos('move FWT_PO.mexw64 ..\Orthogonal');
dos('move FWT2_PO.mexw64 ..\Orthogonal');
dos('move IWT_PO.mexw64 ..\Orthogonal');
dos('move IWT2_PO.mexw64 ..\Orthogonal');
dos('move UpDyadHi.mexw64 ..\Orthogonal');
dos('move UpDyadLo.mexw64 ..\Orthogonal');
dos('move DownDyadHi.mexw64 ..\Orthogonal');
dos('move DownDyadLo.mexw64 ..\Orthogonal');
dos('move dct_iv.mexw64 ..\Packets\One-D');
dos('move FCPSynthesis.mexw64 ..\Pursuit');
dos('move FWPSynthesis.mexw64 ..\Pursuit');
dos('move dct_ii.mexw64 ..\Meyer');
dos('move dst_ii.mexw64 ..\Meyer');
dos('move dct_iii.mexw64 ..\Meyer');
dos('move dst_iii.mexw64 ..\Meyer');
dos('move FWT_PBS.mexw64 ..\Biorthogonal');
dos('move IWT_PBS.mexw64 ..\Biorthogonal');
dos('move FWT_TI.mexw64 ..\Invariant');
dos('move IWT_TI.mexw64 ..\Invariant');
dos('move FMIPT.mexw64 ..\Median ');
dos('move IMIPT.mexw64 ..\Median');
dos('move FAIPT.mexw64 ..\Papers\MIPT');
dos('move IAIPT.mexw64 ..\Papers\MIPT');
dos('move LMIRefineSeq.mexw64 ..\Papers\MIPT');
dos('move MedRefineSeq.mexw64 ..\Papers\MIPT');
elseif isMAC,
acopy('CPAnalysis.mex', '::Packets:One-D')
acopy('WPAnalysis.mex' ,'::Packets:One-D')
acopy('FWT_PO.mex' ,'::Orthogonal')
acopy('FWT2_PO.mex' ,'::Orthogonal')
acopy('IWT_PO.mex' ,'::Orthogonal')
acopy('IWT2_PO.mex' ,'::Orthogonal')
acopy('UpDyadHi.mex' ,'::Orthogonal')
acopy('UpDyadLo.mex' ,'::Orthogonal')
acopy('DownDyadHi.mex' ,'::Orthogonal')
acopy('DownDyadLo.mex' ,'::Orthogonal')
acopy('dct_iv.mex' ,'::Packets:One-D')
acopy('FCPSynthesis.mex' ,'::Pursuit')
acopy('FWPSynthesis.mex' ,'::Pursuit')
acopy('FastAllSeg.mex' ,'::Papers:MinEntSeg')
acopy('dct_ii.mex' ,'::Meyer')
acopy('dst_ii.mex' ,'::Meyer')
acopy('dct_iii.mex' ,'::Meyer')
acopy('dst_iii.mex' ,'::Meyer')
acopy('FWT_PBS.mex' ,'::Biorthogonal')
acopy('IWT_PBS.mex' ,'::Biorthogonal')
acopy('FWT_TI.mex' ,'::Invariant')
acopy('IWT_TI.mex' ,'::Invariant')
acopy('FMIPT.mex' ,'::Median')
acopy('IMIPT.mex' ,'::Median')
acopy('FAIPT.mex' ,'::Papers:MIPT')
acopy('IAIPT.mex' ,'::Papers:MIPT')
acopy('LMIRefineSeq.mex' ,'::Papers:MIPT')
acopy('MedRefineSeq.mex' ,'::Papers:MIPT')
end
end
end
eval(sprintf('cd ''%s''', WAVELABPATH));
clear MEX_OK isPC R
%
% Part of Wavelab Version 850
% Built Tue Jan 3 13:20:38 EST 2006
% This is Copyrighted Material
% For Copying permissions see COPYING.m
% Comments? e-mail wavelab@stat.stanford.edu
startup.m
You should install in your path the following directories:
%
% WaveLab
% WaveLab/Browsers/One-D
% WaveLab/Datasets
% WaveLab/DeNoising
% WaveLab/FastAlgorithms
% WaveLab/Interpolating
% WaveLab/Orthogonal
% WaveLab/Packets
% WaveLab/Packets2
% WaveLab/Papers
% WaveLab/Papers/Adapt
% WaveLab/Papers/Blocky
% WaveLab/Papers/Ideal
% WaveLab/Papers/ShortCourse
% WaveLab/Papers/Tour
% WaveLab/Papers/VillardDeLans
% WaveLab/Pursuit
% WaveLab/Stationary
% WaveLab/Symmetric
% WaveLab/Utilities
% WaveLab/Workouts
% WaveLab/Workouts/BestOrthoBasis
% WaveLab/Workouts/MatchingPursuit
% WaveLab/Workouts/Toons
%
% The file 'WavePath.m' in the current directory, accomplishes this,
% once you have edited it to reflect the correct pathname for WaveLab.
% [See INSTALLATION]. So edit WavePath.m and then invoke it at startup time.
WavePath
%
% WavePath also defines several global variables
%
InstallMEX
%
% Part of Wavelab Version 850
% Built Tue Jan 3 13:20:38 EST 2006
% This is Copyrighted Material
% For Copying permissions see COPYING.m
% Comments? e-mail wavelab@stat.stanford.edu