help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: warning: implicit conversion from matrix to string


From: Thomas Weber
Subject: Re: warning: implicit conversion from matrix to string
Date: Wed, 03 Sep 2008 08:40:48 +0200

Am Dienstag, den 02.09.2008, 20:31 -0400 schrieb Vic Norton:
> How do I get rid of implicit conversion warnings when printing an  
> array of strings of the same length? For example the script
> 
>       % test2.m
> 
>       global SEC_PER_HOUR = 3600;
>       SEC_PER_DAY = 24 * SEC_PER_HOUR;
>       SEC_PER_WEEK = 7 * SEC_PER_DAY;
>       
>       function  date = time2dateEST( time )
>       ## The date returned is the "%Y-%m-%d"-formatted EST date
>       ## corresponding to time.
>               global SEC_PER_HOUR;
>               time -= 5 * SEC_PER_HOUR;
>               date = strftime("%Y-%m-%d", gmtime( time ) );
>       endfunction
>       
>       dates = zeros(5, 10);
>       time = 1082667600;
>       for i = 1 : 5
>          dates(i, :) = time2dateEST(time);
>          time += SEC_PER_WEEK;
>       endfor
>       
>       for i = 1 : 5
>          printf("%s\n", dates(i, :));
>       endfor
> 
> produces
> 
>       octave-3.0.2> test2
>       warning: implicit conversion from matrix to string
>       2004-04-22
>       warning: implicit conversion from matrix to string
>       2004-04-29
>       warning: implicit conversion from matrix to string
>       2004-05-06
>       warning: implicit conversion from matrix to string
>       2004-05-13
>       warning: implicit conversion from matrix to string
>       2004-05-20
> 
> on my system.
> 
> Obviously the dates have been "converted" correctly. What is the  
> problem here?

I'm actually surprised that your strings are correctly converted. I
would use a cell instead of the matrix:

dates = cell(1, 5);
time = 1082667600;
for i = 1 : 5
  dates(i) = time2dateEST(time);
  time += SEC_PER_WEEK;
endfor
 
for i = 1 : 5
  printf("%s\n", dates(i));
endfor

        Thomas



reply via email to

[Prev in Thread] Current Thread [Next in Thread]