Clear Filters
Clear Filters

fmincon doesn't give me the same results as in the previous version !!

1 view (last 30 days)
Hi, please I need your help! In fact, I have just started using the version R2013a of Matlab. To my surprise fmincon doesn't give me the same results as in the previous version (that run without any problem on another Matlab version R2007b and I have had a good results). Thanks Best Regards
  17 Comments
Walter Roberson
Walter Roberson on 27 Oct 2013
The source you emailed me is not long, and could easily be posted here. However, it relies upon loading a number of data files that we do not have access to.
Also, it requires the Statistics toolbox for normcdf, as well as the Optimization toolbox for fmincon

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 1 Nov 2013
kmeans() involves randomization. You might not be using the same random algorithm between the two versions, or you might be using different seeds.
  9 Comments
Walter Roberson
Walter Roberson on 5 Nov 2013
You will need
dbstop if caught error
In your line
prd3=evec3(position3,1:m)*xl(1:m);
do you want matrix multiplication, , or do you want element-by-element multiplication, . ?
The error message is probably suggesting that x1 does not have at least "m" entries.
Mary Ben
Mary Ben on 5 Nov 2013
I want multiply a matrix evec3(position3,1:m) by a vector xl (1:m). such as m=10 , position3= 20.

Sign in to comment.

More Answers (4)

Mary Ben
Mary Ben on 27 Oct 2013
I created a simple example of my function. please See attached file to get information on my func.m
  29 Comments
Matt J
Matt J on 1 Nov 2013
Well, you need to verify that. Before you blame a difference between R2008 and R2013, you need to run the exact same experiment in both.

Sign in to comment.


Matt J
Matt J on 1 Nov 2013
Incidentally, alpha shapes might be a better way of extracting the lower envelope. See, for example
  2 Comments
Mary Ben
Mary Ben on 2 Nov 2013
thank you for your help! the function you sent me it draws a curve from points but in my code I want to optimize a function f () to obtain a vector x in order to plot the lower envelop.
Matt J
Matt J on 2 Nov 2013
You should be able to obtain an envelope for the points by choosing parameters appropriately.

Sign in to comment.


Mary Ben
Mary Ben on 5 Nov 2013
Edited: Mary Ben on 5 Nov 2013
[xl ,fval , exitflag,outputStruct]=fmincon(@func,x0,A,inB,[],[],[],[],[], options)
Caught-error breakpoint was hit in func at line 68. The error was:
Index exceeds matrix dimensions.
68 prd3=evec3(position3,1:m)*xl(1:m);
  12 Comments
Matt J
Matt J on 5 Nov 2013
Edited: Matt J on 5 Nov 2013
If N is the number of unknown variables, you must pass fmincon an initial guess vector x0 of length N. Among other things, this is how fmincon knows how many unknowns to try to solve for.
Incidentally, it is bad practice to load fixed data to your fun.m from .mat files. See here for better ways to pass fixed known parameters to functions,

Sign in to comment.


Mary Ben
Mary Ben on 7 Nov 2013
Edited: Mary Ben on 7 Nov 2013
I have downloaded a program written in C, and wish to run it in Matlab. To do this is use the mex to compile it into Matlab. This has worked for me with R20013a. However, I tried to use it today with R2008b and I got the error;
>> mex FiltreShenCastan.c
Error: Could not find the compiler "cl" on the DOS path.
Use mex -setup to configure your environment properly.
C:\PROGRA~1\MATLAB\R2008B\BIN\MEX.PL: Error: Unable to locate compiler.
??? Error using ==> mex at 213
Unable to complete successfully.
>>
I need your help. Thanks!
  4 Comments
Matt J
Matt J on 7 Nov 2013
Hmmm. What about what it says about SDK? Are you sure it's installed? To be certain, it might be worthwhile just reinstalling both MS Visual C++ and SDK.
In any case, if you continue to have problems, I would post it as a new question/topic. It will have better visibility to the community that way.

Sign in to comment.

Categories

Find more on Function Handles in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!