[Csdp] Error "Function is not defined for sparse inputs." during writesdp.m

Henri Kjellberg henrikjellberg at gmail.com
Tue Nov 9 23:26:51 EST 2010


One last thing. The specific version of MATLAB I have is 7.10.0.499 (R2010a)
32-bit (glnx86).

On Tue, Nov 9, 2010 at 10:25 PM, Henri Kjellberg
<henrikjellberg at gmail.com>wrote:

> Thanks again Brian,
>
> That fixed it!
>
> I would like to educate myself on the topic of manipulating problems into
> the SDPA format. Now I see the CSDP solver can operate quickly enough to
> meet real-time spacecraft attitude control requirements. However,
> formulating the problem from lmi statements using yalmip in MATLAB is
> incredibly slow. I would like to learn how to do this analytically or
> efficiently otherwise. Do you have any pointers to get me started on this
> quest? I
>
> Thank you again for all of your time. I will clean up my edits to get the
> cblas and clapack functioning in the code and send them to you this weekend.
>
> Kind regards,
> Henri Kjellberg
> National Defense Engineering Graduate Fellow
> Satellite Design Laboratory
> University of Texas at Austin
>
>
> On Tue, Nov 9, 2010 at 8:13 PM, Brian Borchers <borchers at nmt.edu> wrote:
>
>> On Tue, Nov 9, 2010 at 5:21 PM, Henri Kjellberg
>> <henrikjellberg at gmail.com> wrote:
>> > Hi Brian,
>> > Here is the output from the debugger:
>> > K>> fid
>> > fid =
>> >      4
>> > K>> i
>> > i =
>> >      4
>> > K>> c(i)
>> > ans =
>> >    (1,1)           -0.459883916200743
>> >
>>
>> That's very interesting.  Somehow, mdl.C(4) is a sparse array of size
>> 1 by 1 rather than a scalar on your system.  The vector mdl.C itself
>> starts out sparse, but I can see absolutely no reason that mdl.C(4)
>> should be a sparse matrix- it's a specific element of that vector.
>>
>> On my system (which is running MATLAB 2009A),  mdl.C(4) is a regular
>> scalar rather than a sparse 1x1 matrix::
>>
>> >> mdl.C(4)
>>
>> ans =
>>
>>   -0.4599
>>
>>
>>
>> This appears to be a bug or at least a change in the semantics of
>> MATLAB between R2009A and your 2010 version.  If I can find a system
>> running MATLAB 2010 I'll investigate further.
>>
>> In the mean time, try the following workaround:
>>
>> mdl.C=full(mdl.C);
>> mdl.b=full(mdl.b);
>>
>> before calling csdp().   This will waste some storage but should work
>> around this issue.
>>
>> --
>> Brian Borchers                          borchers at nmt.edu
>> Department of Mathematics      http://www.nmt.edu/~borchers/
>> New Mexico Tech                       Phone: (575) 322-2592
>> Socorro, NM 87801                   FAX: (575) 835-5366
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.coin-or.org/pipermail/csdp/attachments/20101109/032c3fe5/attachment-0001.html 


More information about the Csdp mailing list