La matriz tiene demasiadas columnas<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />¿Por qué JNK no puede manejar más de 128 columnas? Vaya me refiero a JMP.
Mi guion:
PrintMatrix (Índice (1, 129))
Salida de registro:
La matriz tiene demasiadas columnas en el acceso o evaluación de 'Matriz de impresión', Argumento incorrecto (índice (1, 129)), Matriz de impresión / * ### * / (Índice (1, 129))
En el siguiente script, error marcado por / * ### * /
Matriz de impresión / * ### * / (Índice (1, 129))
Me gusta la capacidad de la función PrintMatrix para formatear una matriz en una cadena para que pueda escribirla en un archivo. Mi caso de uso real es una matriz con el mismo número de filas y columnas, simplemente mostrando un ejemplo simple aquí.
Actualizar:
Gracias por las buenas sugerencias, pero para ampliar mi caso de uso:
Tengo una imagen de 1024x1024 píxeles así:
image_mat = Forma (Índice (1, 1024 ^ 2), 1024, 1024);
y con este sencillo trazador de líneas, tengo pestañas entre cada valor de intensidad Y un carácter de avance de línea en lugar de una pestaña después del último valor de cada fila:
printed_mat_for_save = PrintMatrix (image_mat, << estilo ("otro"), << inicio de línea (""), << final de línea (""), << separado ("\! t"));
Y luego puedo escribir todo lo que necesito, incluidos algunos encabezados, en otro forro.
SaveTextFile (name_of_savefile, Concat (header_for_save, "\! N", printed_mat_for_save )
¿Quizás hay algunas alternativas a recorrer un millón de valores para marcar y agregar una pestaña a excepción de la última columna de una fila que recibe un salto de línea?
Re: Matrix tiene demasiadas columnasSRA. Estabas casi allí. Aquí está mi resultado final para obtener el formato que necesitaba usando un sustituto. Gracias por apuntarme en la dirección correcta, pero sustituye "se siente" más lento que haciendo un bucle for. Y como lo hice con for loop, puedo especificar el ancho y el número de decimales.
Con método sustituto:
numpixels = 1024;image_mat = Shape(Index(1, numpixels^2), numpixels, numpixels);string_mat_with_tabs = Substitute(Char(image_mat), ", \!r\!n\!t", "\!n", " ", "\!t", "\!r\!n[\!t", "", "]", "" );
Fuerza bruta para bucles:
numpixels = 1024;image_mat = Shape(Index(1, numpixels^2), numpixels, numpixels);char_maxwidth = 10;char_num_decimals = 6;string_mat_with_tabs = "";for( iii = 1, iii <= nrows(image_mat), iii++, each_row = AsList(image_mat[iii, 1::numpixels])[1]; string_row = ""; for( jjj = 1, jjj < nitems(each_row), jjj++, ConcatTo(string_row, char(each_row[jjj], char_maxwidth, char_num_decimals), "\!t"); ); ConcatTo(string_row, char(each_row[jjj], char_maxwidth, char_num_decimals), "\!n"); // last col gets new line ConcatTo(string_mat_with_tabs, string_row); // add string_row to the main guy);
Re: Matrix tiene demasiadas columnas Sustituir() es bastante eficiente Intenta algo como esto:
image_mat = Forma ( Índice ( 1 , 1024 ^ 2 ) , 1024 , 1024 ) ;
printed_mat_for_save = Sustituir ( Carbonizarse ( image_mat ) , " , "" , "" , "\! t" ) ;
Guardar archivo de texto ( "my_matrix.txt" , printed_mat_for_save ) ;
Re: Matrix tiene demasiadas columnas<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />PrintMatrix es para impresiones bonitas. No estoy seguro de por qué hay un límite en el ancho. Puedes usar char (matriz) si puedes usar una cadena no tan bonita.

Re: Matrix tiene demasiadas columnas<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />No se porque hay un limite para Matriz de impresión .
Prueba el Carbonizarse() función en su lugar.
Guardar archivo de texto ( "my_matrix.txt" , Carbonizarse ( Índice ( 1 , 128 ))) ;