[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Octave-3.3.55 and Octave-3.3.90 on OSX
From: |
Richard Campbell |
Subject: |
Re: Octave-3.3.55 and Octave-3.3.90 on OSX |
Date: |
Sun, 30 Jan 2011 15:01:28 -0500 |
On Jan 30, 2011, at 2:48 PM, Ben Abbott wrote:
> On Jan 30, 2011, at 1:10 PM, Richard Campbell wrote:
>
>> On Jan 30, 2011, at 1:04 PM, John W. Eaton wrote:
>>
>>> On 30-Jan-2011, Richard Campbell wrote:
>>>
>>> | It's just a line plot. I pasted it in an earlier message in this thread.
>>> I get
>>> | the same error when trying to print if I had typed surf(peaks) as well. It
>>> | plots fine on the screen, I just can't print it to a file.
>>> |
>>> | octave:1> plot(randn(10,1))
>>> | octave:2> print('-dpng','test.png')
>>> | warning: print.m: fig2dev binary is not available
>>> | error: invalid assignment to cs-list outside multiple assignment
>>> | error: matrix cannot be indexed with {
>>> | error: evaluating argument list element number 3
>>> | error: called from:
>>> | error: /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at
>>> line
>>> | 390, column 11
>>> | octave:2> print('-depsc','test.eps')
>>> | error: invalid assignment to cs-list outside multiple assignment
>>> | error: matrix cannot be indexed with {
>>> | error: evaluating argument list element number 3
>>> | error: called from:
>>> | error: /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at
>>> line
>>> | 390, column 11
>>> | octave:2> print('-dtiff','test.tiff')
>>> | error: invalid assignment to cs-list outside multiple assignment
>>> | error: matrix cannot be indexed with {
>>> | error: evaluating argument list element number 3
>>> | error: called from:
>>> | error: /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at
>>> line
>>> | 390, column 11
>>> |
>>>
>>> In 3.3.90, line 390 of print.m is
>>>
>>> ## restore modified properties
>>> if (isstruct (props))
>>> for n = 1:numel(props)
>>> if (ishandle (props(n).h))
>>> set (props(n).h, props(n).name, props(n).value{1}); <<< line 390
>>> endif
>>> endfor
>>> endif
>>>
>>> Try this in Octave:
>>>
>>> dbstop print 390
>>> peaks
>>> print ('-depsc', 'test.eps')
>>>
>>> then when you get the "debug>" prompt, try looking at the following
>>> items:
>>>
>>> numel (props)
>>> props
>>> props(1)
>>> props(2)
>>>
>>> Here is what I see:
>>>
>>> debug> numel (props)
>>> ans = 2
>>> debug> props
>>> props =
>>>
>>> 1x2 struct array containing the fields:
>>>
>>> h
>>> name
>>> value
>>>
>>> debug> props(1)
>>> ans =
>>>
>>> scalar structure containing the fields:
>>>
>>> h = 1
>>> name = position
>>> value =
>>> {
>>> [1,1] =
>>>
>>> 300 200 560 420
>>>
>>> }
>>>
>>> debug> props(2)
>>> ans =
>>>
>>> scalar structure containing the fields:
>>>
>>> h = 1
>>> name = color
>>> value =
>>> {
>>> [1,1] =
>>>
>>> 1 1 1
>>>
>>> }
>>>
>>> I guess you don't have the same props(?).value. If not, then why is
>>> it not set correctly? You can do
>>>
>>> dbstop print
>>> peaks
>>> print ('-depsc', 'test.eps')
>>>
>>> and then step through print.m with dbstep to see where props(?).value
>>> is set. Note that after you type a command at the debug prompt,
>>> pressing the Enter by itself will repeat the previous command, so
>>> stepping is easy.
>>>
>>> jwe
>>
>>
>> octave:1> dbstop print 390
>> ans = 390
>> octave:2> peaks
>> octave:3> print('-depsc', 'test.eps');
>> warning: print.m: fig2dev binary is not available
>> error: invalid assignment to cs-list outside multiple assignment
>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at
>> line 390
>> 390: set (props(n).h, props(n).name, props(n).value{1});
>> debug> numel(props)
>> ans = 2
>> debug> props
>> props =
>>
>> 1x2 struct array containing the fields:
>>
>> h
>> name
>> value
>>
>> debug> props(1)
>> ans =
>>
>> scalar structure containing the fields:
>>
>> h = 1
>> name = position
>> value =
>> {
>> [1,1] =
>>
>> 300 200 560 420
>>
>> }
>>
>> debug> props(2)
>> ans =
>>
>> scalar structure containing the fields:
>>
>> h = 1
>> name = [](0x0)
>> value = [](0x0)
>>
>>
>> and then while dbstepping through print.m:
>>
>> debug> dbstep
>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at
>> line 297
>> 297: props(2).h = opts.figure;
>> debug> dbstep
>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at
>> line 298
>> 298: props(2).name = "color";
>> debug> dbstep
>> error: invalid assignment to cs-list outside multiple assignment
>> stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at
>> line 387
>> 387: if (isstruct (props))
>
> props(2) is the problem. Lines 297-300 set the name and value.
>
> 297 props(2).h = opts.figure;
> 298 props(2).name = "color";
> 299 props(2).value{1} = get (props(2).h, props(2).name);
> 300 set (props(2).h, props(2).name, "none");
>
> I don't see how these fields end up empty.
>
> Please add another breakpoint at line 300, and check that the fields of
> props(2). Also check the fields of "opt". You can see the result I get below.
>
> dbstop print 300
> ans = 300
> peaks
> print ('-depsc', 'test.eps');
> stopped in /Users/bpabbott/Development/Octave_Toolbox/print/print.m at line
> 300
> 300: set (props(2).h, props(2).name, "none");
> debug> props(2)
> ans =
>
> scalar structure containing the fields:
>
> h = 1
> name = color
> value =
> {
> [1,1] =
>
> 1 1 1
>
> }
>
> debug> opts
> opts =
>
> scalar structure containing the fields:
>
> append_to_file = 0
> canvas_size =
>
> 576 432
>
> debug = 0
> debug_file = octave-print-commands.log
> devopt = epsc
> epstool_binary = /sw/bin/epstool
> figure = 1
> fig2dev_binary = /sw/bin/fig2dev
> fontsize =
> font =
> force_solid = 0
> formatted_for_printing = 0
> ghostscript =
>
> scalar structure containing the fields:
>
> binary = /sw/bin/gs
> debug = 0
> device =
> epscrop = 1
> level = [](0x0)
> output =
> papersize =
> pageoffset =
>
> 0 0
>
> resolution = 150
> antialiasing = 0
>
> loose = 0
> lpr_binary = /usr/bin/lpr
> name = test.eps
> orientation = portrait
> pstoedit_binary = /sw/bin/pstoedit
> preview =
> printer =
> send_to_printer = 0
> special_flag = textnormal
> tight_flag = 0
> use_color = 1
> lpr_options = -l
> unlink = {}(0x0)
> pstoedit_cmd = @pstoedit
> fig2dev_cmd = @fig2dev
> latex_standalone = @latex_standalone
> lpr_cmd = @lpr
> epstool_cmd = @epstool
>
> Ben
>
>
>
>
dbstop print 300 has no effect, which tells me that the line is never being
executed.
dbstop print 297 stops as expected, though. If I step forward from there:
octave:1> peaks
octave:2> dbstop print 297
ans = 297
octave:3> print('-depsc','test.eps')
warning: print.m: fig2dev binary is not available
stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at line
297
297: props(2).h = opts.figure;
debug> dbstep
stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at line
298
298: props(2).name = "color";
debug> dbstep
error: invalid assignment to cs-list outside multiple assignment
stopped in /Users/campbell/Downloads/octave-3.3.90/scripts/plot/print.m at line
387
387: if (isstruct (props))
- Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/30
- Octave-3.3.55 and Octave-3.3.90 on OSX, John W. Eaton, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Ben Abbott, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Ben Abbott, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, John W. Eaton, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Ben Abbott, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX,
Richard Campbell <=
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Ben Abbott, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/30
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/31
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Ben Abbott, 2011/01/31
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/31
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, bpabbott, 2011/01/31
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/31
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, bpabbott, 2011/01/31
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/31
- Message not available
- Re: Octave-3.3.55 and Octave-3.3.90 on OSX, Richard Campbell, 2011/01/31