Le 01/07/2016 11:33, Samuel Gougeon a écrit : > Hello Philippe, > You shall use a mlist() instead of a tlist. > Have a look at https://help.scilab.org/docs/6.0.0/en_US/mlist.html > mlist are array-oriented.
thanks Samuel, I will create mbigint as a mlist containing the cell of bigint and a string matrix of the same size (I already have a bigint2str function) : %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x=bigint(123456789); y=bigint(987654321); z=x-y; T=cell() T(1,1).entries=x; T(1,2).entries=y; T(2,1).entries=z; T(2,2).entries=bigint(0); M=mlist(['mbigint','display','value'],.. [bigint2str(x) bigint2str(y); bigint2str(z) '0' ],T) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% The display for mbigint is just M.display %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function %mbigint_p(M) disp(M.display) endfunction -->M M = !123456789 987654321 ! ! ! !-864197532 0 ! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% the extraction for mbigint is exactly as in the help page : %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function r=%mbigint_e(varargin) M=varargin($) r=mlist(['mbigint','display','value'],.. M.display(varargin(1:$-1)),M.value(varargin(1:$-1))) endfunction -->M(2,:) ans = !-864197532 0 ! -->M(:,1) ans = !123456789 ! ! ! !-864197532 ! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% as well as insertion : %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function M=%mbigint_i_mbigint(varargin) M=varargin($) N=varargin($-1) M.value(varargin(1:$-2))=N.value M.display(varargin(1:$-2))=N.display endfunction -->M(1,1)=M(2,2) M = !0 987654321 ! ! ! !-864197532 0 ! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% it remains to write %mbigint_c_mbigint and %mbigint_f_mbigint %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function M=%mbigint_c_mbigint(A,B) M=mlist(['mbigint','display','value'],.. [A.display B.display],.. [A.value B.value]) endfunction function M=%mbigint_f_mbigint(A,B) M=mlist(['mbigint','display','value'],.. [A.display;B.display],.. [A.value;B.value]) endfunction --> [M M] ans = !0 987654321 0 987654321 ! ! ! !-864197532 0 -864197532 0 ! --> [M;M] ans = !0 987654321 ! ! ! !-864197532 0 ! ! ! !0 987654321 ! ! ! !-864197532 0 ! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Finally Samuel have you any idea for my previous question abou how to replace unix('sed ...') by a "scilab-only" command ;-) Philippe _______________________________________________ users mailing list users@lists.scilab.org http://lists.scilab.org/mailman/listinfo/users