[Scilab-users] question on makecell
Samuel Gougeon
sgougeon at free.fr
Thu Dec 5 22:13:54 CET 2019
Le 05/12/2019 à 14:25, Federico Miyara a écrit :
>
> Dear all,
>
> When using makecell such as in
>
> --> u = makecell([2 2], cos, 'hello', 1+%s^2, [1 2; 3 4])
> u =
>
> [ 1 fptr ] [1x1 string ]
> [1x1 polynomial] [2x2 constant]
>
> we get a cell array where the unidimensional ordering of the cells
> goes first along columns and then ows. However, when extracting
> components unidimensionally, it behaves the other way around:
>
> --> u(1:4)
> ans =
>
> [ 1 fptr ]
> [1x1 polynomial]
> [1x1 string ]
> [2x2 constant ]
>
> The same happens wen applying matrix:
>
> --> matrix(u,4,1)
> ans =
>
> [ 1 fptr ]
> [1x1 polynomial]
> [1x1 string ]
> [2x2 constant ]
>
> --> matrix(u,1,4)
> ans =
>
> [1 fptr] [1x1 polynomial] [1x1 string] [2x2 constant]
>
> Isn't this inconsistent?
> Shouldn't makecell create the cell array going along rows and then
> columns?
You are right, Federico.
We could have expected to list cells elements in linearized indices
order, as for all other native Scilab arrays.
This irregularity/exception is completely useless and misleading:
--> c = { "abcd" %T ; %pi %z}
c =
[1x1 string ] [1x1 boolean ]
[1x1 constant] [1x1 polynomial]
--> makecell([2 2], c{:}(:))
ans =
[1x1 string ] [1x1 constant ]
[1x1 boolean] [1x1 polynomial]
The fact that it is documented does not attenuate it.
Please do not hesitate to report a wish about removing this exception.
It would not be complicated to remove it, and tracking and updating it
in existing codes would be easy, through the /makecell/ keyword.
Regards
Samuel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20191205/89ba66cd/attachment.htm>
More information about the users
mailing list