Hola,
Estoy creando un script que toma una matriz como entrada, obtiene el intervalo entre los elementos de la matriz y genera ese intervalo. Mi problema es que la salida JMP tiene posiciones decimales adicionales a veces (consulte la salida de registro a continuación). ¿Cómo me aseguro de que si mi entrada tiene N decimales, la salida también debería tener N decimales?
Guión:
outmtx = [0, 0.2, 0.4, 0.6, 0.8, 1, 1.2, 1.4, 1.6, 1.8, 2,
2.2, 2.4, 2.6, 2.8, 3, 3.2, 3.4, 3.6, 3.8, 4,
4.2, 4.4, 4.6, 4.8, 5, 5.2, 5.4, 5.6, 5.8, 6,
6.2, 6.4, 6.6, 6.8, 7, 7.2, 7.4, 7.6, 7.8, 8,
8.2, 8.4, 8.6, 8.8, 9, 9.2, 9.4, 9.6, 9.8, 10];
mtxdiff = J(Nrows(outmtx)-1,1,0);
For (i=1, i<=Nrows(outmtx)-1, i++, mtxdiff[i] = outmtx[i+1]-outmtx[i]);
Show(mtxdiff);
Salida de la ventana de registro:
mtxdiff = [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,<BR /> 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, <BR />0.199999999999999, 0.2, 0.2, 0.2, 0.2, 0.199999999999999, 0.2, <BR />0.2, 0.2, 0.2, 0.199999999999999, 0.2, 0.2, 0.2, 0.2, 0.199999999999999, <BR />0.2, 0.2, 0.199999999999999, 0.200000000000001, 0.199999999999999,<BR /> 0.200000000000001, 0.199999999999999, 0.199999999999999, 0.200000000000001,<BR /> 0.199999999999999, 0.200000000000001, 0.199999999999999];
Gracias,
Shaira
Ver la función Round (). En este caso, Round (mtxdiff, 1) debe hacer lo que quiera.