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

4 次查看(过去 30 天)
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 个评论
Walter Roberson
Walter Roberson 2013-10-27
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

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2013-11-1
kmeans() involves randomization. You might not be using the same random algorithm between the two versions, or you might be using different seeds.
  9 个评论
Walter Roberson
Walter Roberson 2013-11-5
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 2013-11-5
I want multiply a matrix evec3(position3,1:m) by a vector xl (1:m). such as m=10 , position3= 20.

请先登录,再进行评论。

更多回答(4 个)

Mary Ben
Mary Ben 2013-10-27
I created a simple example of my function. please See attached file to get information on my func.m
  29 个评论
Matt J
Matt J 2013-11-1
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.

请先登录,再进行评论。


Matt J
Matt J 2013-11-1
Incidentally, alpha shapes might be a better way of extracting the lower envelope. See, for example
  2 个评论
Mary Ben
Mary Ben 2013-11-2
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 2013-11-2
You should be able to obtain an envelope for the points by choosing parameters appropriately.

请先登录,再进行评论。


Mary Ben
Mary Ben 2013-11-5
编辑:Mary Ben 2013-11-5
[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 个评论
Matt J
Matt J 2013-11-5
编辑:Matt J 2013-11-5
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,

请先登录,再进行评论。


Mary Ben
Mary Ben 2013-11-7
编辑:Mary Ben 2013-11-7
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 个评论
Matt J
Matt J 2013-11-7
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Performance and Memory 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by