Change Optimoptions to optimset because of matlab R2011a - matlab

I am using optimoptions function in MATLAB R2015a. The syntax is as follows :
options = optimoptions('fmincon','Display','iter','MaxFunEvals',3000000);
fx = #(x)modifiedLogLikelihood(x,len,ET,counta,vals,INT);
parameters = fmincon(fx,x0,[],[],[],[],lb,ub,[],options);
I would like to run the same code on R2011a, but I am getting the following error since optimoptions was introduced after R2011a.
Undefined function or method 'optimoptions' for input arguments of type 'char'.
I referred to this document, that suggested me to use optimset.
I tried to take their advice and wrote:
options = optimset('fmincon','Display','iter',3000000);
fx = #(x)modifiedLogLikelihood(x,len,ET,counta,vals,INT);
parameters = fmincon(fx,x0,[],[],[],[],lb,ub,[],options);
But it yields the following error:
Error using ==> optimset at 198
Unrecognized parameter name 'fmincon'. Please see the optimset reference page in the
documentation for a list of acceptable option parameters. Link to reference page.
How can I use optimset to get the equivalent set of parameters as I was able to obtain with optimoptions. I would be very grateful for your help.

It's helpful if you read the documentation page for a function when trying to use it.
With optimset you want to get the default parameters using just the 'fmincon' string as input and then use optimset again to modify just the parameters that you would like to change from their default value.
options = optimset('fmincon');
options = optimset(options, 'Display', 'iter', 'MaxFunEvals', 3000000);

Related

linIt function in Octave

I try to convert these matlab scripts to octave. However in getGroundTruthBoxes.m, it has following code:
freq = cell2mat(accumarray(inst(inst>0), segm(inst>0), [], #(x){linIt(histc(x,1:numClass))'}, {zeros(1,numClass)}$
When i try to run with octave, it gives " linIt undefined" error. I googled "linIt" functions , but i can not reach any information about linIt. Can you give information about this "linIt" function?
Thanks.
The user s-gupta whose repository you're using seems to have another repository called utils, where he defines this function https://github.com/s-gupta/utils/blob/master/matlab/linIt.m
Essentially it seems to be a tiny helper function that converts an array to its linearly indexed column-vector, i.e.
function a = linIt(A)
a = A(:);
end

Unrecognized parameter name 'interior-point' in optimset

I'm trying to execute following code in MATLAB R2018a. It worked perfectly in MATLAB 2014, but optimset seems to be depreciated, so it has been deleted. What to use instead?
F = [-310 -250 -450 -370];
A = [6 4 10 9];
b = [86];
lb = zeros(4,1);
options = optimset('LargeScale','off','interior-point','on');
[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb,[],[],options);
That's the error:
Error using optimset (line 249)
Unrecognized parameter name 'interior-point'. Please see the options table in the documentation for a list of acceptable option parameters. Note that some parameters are only supported by OPTIMOPTIONS. Link to options table
Error in Untitled (line 5)
options = optimset('LargeScale','off','interior-point','on');
optimset still works, but the available options have changed. Nonetheless you should probably update the code to use optimoptions. There is a discussion about Choose Between optimoptions and optimset in the doc.
options = optimoptions('linprog');
options.Algorithm = 'interior-point';
The available options for linprog can be found here

Matlab 'main' function isn't reading local functions

I have a code in matlab (~1000 lines) that constists of about 15 functions. The code runs fine with each function as a different script, but I want to put them all into one file so I can use the publish function more easily. However, when I put them all together my 'main' function isn't recognizing the local functions. Here's what it looks like:
function full_function()
...
values = fvalues(0);
...
end
function values = fvalues(state)
...
end
When I try to run it, it gives me
"Undefined function 'fvalues' for input arguments
of type 'double'.
Error in full_function (line 32)
values = fvalues(0);"
I've looked all over for how to do local functions and I have no idea what I'm doing wrong. If I right-click on fvalues and hit 'open' it even brings me to the correct portion of the code, so I have no idea why full_function cannot read it. Please help! Thanks.

Error in Publishing a code in matlab

I published the following code in Matlab, although the desired output was produces, but along with that it also generated an error while publishing. Any idea why?
%% Gaussian kernel function
% Some text
function t0 = kachra(Param)
t0 = Param;
end
Attached is the Published output.
Thanks
You need to specify an input to your function when publishing.
If you select Edit Publishing Options you see the following GUI:
Modify your expression here and then publish it in order for input arguments to be passed.
You need to configure custom settings to publish your code with output result.
[t0] = kachra(100); %the argument is of your choice.
add your command-line input argument manually here:

What is mean of 'Undefined function 'tfest' for input arguments of type 'idfrd'.'

When I tried to get transfer function from the data, it always returns this information, my friend is able to get result with Matlab 2012 (mine is 2011b). my code is as follow:
load CP.dat
f=CP(:,1)
gain=CP(:,2)
phase=CP(:,3)
gainn=10.^(gain/20)
response=gainn.*exp(1i*phase)
w=f*2*pi
g=idfrd(response,w,0)
sys=tfest(g,3)
The tfest function was introduced into the R2012a version of MATLAB. See the release notes of its toolbox; look at the R2012a New feature section.