MATLAB Answers

1

M-File not accessible in Excel Add-in

Asked by Sieghard on 11 Jan 2017
Latest activity Answered by Sieghard on 10 Feb 2017
Hi,
I generated an Excel Add-in using the Library Compiler with MS Win SDK 7.1 in the background. The compilation worked fine and the xla file was generated. Once imported to Excel, I called the newly programmed function =fitSVP(D4:N25). However, I received the error
Error in fitSVP.Class1.1_0: Previously accessible file "J:\Work\Research\0030-Calculations\MatlabFiles\fitSVP.m" is now inaccessible.
and the output is not generated. The path is a network drive and added to Excel as trusted location. The spelling is correct and the file is there. Any ideas how to overcome this error?
Thanks, Sieghard

  2 Comments

The .xla file should not invoke non-compiled .m file. Does your compiling file have hard-coded paths to other .m files?
No, it doesn't. It is a simple regression function programmed with the optimization tool box. The fitSVP.m file is the original file I compiled, i.e., the one where the function is in. The full fitSVP.m file looks like that:
function coeff = fitSVP(xydata)
nbrMP = length(xydata(:,1));
nbrVar = length(xydata(1,:));
xdata = xydata(:,nbrVar-4:nbrVar);
ydata = xydata(:,1:nbrVar-5);
fcn_svp = @(x,xdata)x(1)+x(2).*xdata(:,1)+x(3).*xdata(:,2)+...+x(21).*xdata(:,5).^2;
x0 = zeros(1,21);
coeff = zeros(nbrVar-5,21);
for i = 1:nbrVar-5
coeff(i,:) = lsqcurvefit(fcn_svp,x0,xdata,ydata(:,i));
end
coeff = transpose(coeff);
end
Any ideas?
Thanks!

Sign in to comment.

2 Answers

Answer by Friedrich
on 9 Feb 2017
 Accepted Answer

Hi,
do you have a startup.m file which set up paths, CDs into something? Something messed up the search path of the compiled add in which leads to the addin trying to access a noncompiled m file.

  0 Comments

Sign in to comment.


Answer by Sieghard on 10 Feb 2017

Thanks, that helped. I still do not quite understand why, but removing the startup.m file and copying it to the base search path did the trick. Thanks a lot!!!!

  0 Comments

Sign in to comment.