Thanks again Brian,<div><br></div><div>That fixed it! </div><div><br></div><div>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 </div>
<div><br></div><div>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.</div><div><br></div><div>Kind regards,</div><div>Henri Kjellberg</div>
<div>National Defense Engineering Graduate Fellow</div><div>Satellite Design Laboratory</div><div>University of Texas at Austin</div><div><br></div><div><br></div><div><div class="gmail_quote">On Tue, Nov 9, 2010 at 8:13 PM, Brian Borchers <span dir="ltr"><<a href="mailto:borchers@nmt.edu">borchers@nmt.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Tue, Nov 9, 2010 at 5:21 PM, Henri Kjellberg<br>
<<a href="mailto:henrikjellberg@gmail.com">henrikjellberg@gmail.com</a>> wrote:<br>
> Hi Brian,<br>
> Here is the output from the debugger:<br>
> K>> fid<br>
> fid =<br>
> 4<br>
> K>> i<br>
> i =<br>
> 4<br>
> K>> c(i)<br>
> ans =<br>
> (1,1) -0.459883916200743<br>
><br>
<br>
</div>That's very interesting. Somehow, mdl.C(4) is a sparse array of size<br>
1 by 1 rather than a scalar on your system. The vector mdl.C itself<br>
starts out sparse, but I can see absolutely no reason that mdl.C(4)<br>
should be a sparse matrix- it's a specific element of that vector.<br>
<br>
On my system (which is running MATLAB 2009A), mdl.C(4) is a regular<br>
scalar rather than a sparse 1x1 matrix::<br>
<br>
>> mdl.C(4)<br>
<br>
ans =<br>
<br>
-0.4599<br>
<br>
<br>
<br>
This appears to be a bug or at least a change in the semantics of<br>
MATLAB between R2009A and your 2010 version. If I can find a system<br>
running MATLAB 2010 I'll investigate further.<br>
<br>
In the mean time, try the following workaround:<br>
<br>
mdl.C=full(mdl.C);<br>
mdl.b=full(mdl.b);<br>
<br>
before calling csdp(). This will waste some storage but should work<br>
around this issue.<br>
<font color="#888888"><br>
--<br>
</font><div><div></div><div class="h5">Brian Borchers <a href="mailto:borchers@nmt.edu">borchers@nmt.edu</a><br>
Department of Mathematics <a href="http://www.nmt.edu/~borchers/" target="_blank">http://www.nmt.edu/~borchers/</a><br>
New Mexico Tech Phone: (575) 322-2592<br>
Socorro, NM 87801 FAX: (575) 835-5366<br>
</div></div></blockquote></div><br></div>