octave-maintainers
[Top][All Lists]
Advanced

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

Re: 'length' extension for multiple input arguments?


From: Thomas Treichl
Subject: Re: 'length' extension for multiple input arguments?
Date: Wed, 04 Feb 2009 22:29:20 +0100
User-agent: Thunderbird 2.0.0.19 (Macintosh/20081209)

Soren Hauberg schrieb:
Hi All

If I have a cell array, and I want to know the length of all elements of
this array, it seems I, essentially, have to do something like

  for k = 1:length (cell_array)
    lengths (k) = length (cell_array {k});
  endfor

Would an extension to the 'length' function be acceptable that allowed
for multiple input arguments? This would simply implement the above loop
and return a vector of integers instead of just an integer. So,

  length ("hello", 7)

would return [5, 1]. Such an extension would allow me to write

  lengths = length (cell_array {:});

which I think is quite easy to read. Anyway, would such a change be
acceptable?

You could also use cellfun instead, if I understand you correctly.
But this is just a tip making things faster and doesn't really answer
your question if a modification to length() can be made...

octave-3.1.51+:1> A = {"hello", 7, "hello world"};
octave-3.1.51+:2> B = cellfun (@(x) length (x), A, "UniformOutput", true)
B =
    5   1    11
octave-3.1.51+:3> typeinfo (B)
ans = matrix

Best regards,

  Thomas


reply via email to

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