'length' extension for multiple input arguments?
Thomas Treichl
Thomas.Treichl at gmx.net
Wed Feb 4 15:29:20 CST 2009
Søren 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
More information about the Octave-maintainers
mailing list