Hello,

Le 10/02/2016 09:49, Lester Anderson a écrit :
Hi all,

A quick one. I am looking for the Scilab equivalent to padarray in Matlab.

In the Matlab code the line is:
datapad = padarray(data, [rdiff cdiff], 'replicate') where cdiff/rdiff
are column/row, with the replicate function padding with the values at
the borders of "data"

The closest I can find in Scilab is: resize_matrix
resMat = resize_matrix(mat, nbRows, nbCols, resType, padding)

Just want to verify I am looking at the correct option.
There is no real Scilab equivalent. Scilab's repmat() could be extended.
For the time being, to process, you may use the 2 following lines:

tmp = [data ; data($, :) .*. ones(addedRows, 1)];
paddedMat = [tmp  tmp(:, $) .*. ones(1,addedCols)];

// EXAMPLE:
addedRows = 3; addedCols = 2;
data = grand(4,3,"uin",-9,9)
tmp = [data ; data($, :) .*. ones(addedRows, 1)];
paddedMat = [tmp  tmp(:, $) .*. ones(1,addedCols)]

--> addedRows = 3; addedCols = 2;
--> data = grand(4,3,"uin",-9,9)
 data  =
  -5.  -1.  -7.
  -7.   3.  -4.
  -4.   3.   2.
   7.   2.   9.

--> tmp = [data ; data($, :) .*. ones(addedRows, 1)];

--> paddedMat = [tmp  tmp(:, $) .*. ones(1,addedCols)]
 paddedMat  =
  -5.  -1.  -7.  -7.  -7.
  -7.   3.  -4.  -4.  -4.
  -4.   3.   2.   2.   2.
   7.   2.   9.   9.   9.
   7.   2.   9.   9.   9.
   7.   2.   9.   9.   9.
   7.   2.   9.   9.   9.

HTH
Samuel Gougeon

_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

Reply via email to