Matrix ha troppe colonne<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Perché JNK non può gestire più di 128 colonne? oops intendo JMP.
La mia sceneggiatura:
PrintMatrix (Index (1, 129))
Registrare l'output:
Matrix ha troppe colonne nell'accesso o nella valutazione di 'Print Matrix', Bad Argument (Index (1, 129)), Print Matrix / * ### * / (Index (1, 129))
Nel seguente script, errore contrassegnato da / * ### * /
Print Matrix / * ### * / (Indice (1, 129))
Mi piace l'abilità della funzione PrintMatrix di formattare una matrice in una stringa in modo da poterla scrivere su un file. Il mio caso d'uso effettivo è una matrice con lo stesso numero di righe e colonne, mostrando solo un semplice esempio qui.
Aggiornare:
Grazie per i buoni suggerimenti, ma per espandere il mio caso d'uso:
Ho un'immagine di 1024x1024 pixel simile a questa:
image_mat = Shape (Index (1, 1024 ^ 2), 1024, 1024);
e con questa semplice fodera, ho tabulazioni tra ogni valore di intensità E un carattere di avanzamento riga invece di una scheda dopo l'ultimo valore di ogni riga:
printed_mat_for_save = PrintMatrix (image_mat, << style ("other"), << line begin (""), << line end (""), << separate ("\! t"));
E poi posso scrivere tutto ciò di cui ho bisogno, incluse alcune intestazioni, in un'altra nave.
SaveTextFile (name_of_savefile, Concat (header_for_save, "\! N", printed_mat_for_save )
Forse ci sono alcune alternative al looping di un milione di valori per caricarlo e aggiungere una scheda ad eccezione dell'ultima colonna di una riga che ottiene un linefeed?
Re: Matrix ha troppe colonneSIGNORINA. Eri quasi lì. Ecco il mio risultato finale per ottenere la formattazione di cui ho bisogno usando il sostituto. Grazie per avermi indicato nella giusta direzione, ma sostituire "sembra" più lento che fare un ciclo for. E il modo in cui l'ho fatto con ciclo for, posso specificare la larghezza e il numero di decimali.
Con il metodo sostitutivo:
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", "", "]", "" );
Brute Force for loops:
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 ha troppe colonne Sostituto() è abbastanza efficiente Prova qualcosa del genere:
image_mat = Forma ( Indice ( 1 , 1024 ^ 2 ) , 1024 , 1024 ) ;
printed_mat_for_save = Sostituto ( carbonizzare ( image_mat ) , "," , "" , "" , "\! T" ) ;
Salva file di testo ( "My_matrix.txt" , printed_mat_for_save ) ;
Oggetto: Matrix ha troppe colonne<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />PrintMatrix è per la bella stampa. Non sono sicuro del motivo per cui c'è un limite alla larghezza. Puoi usare char (matrice) se puoi usare una stringa non così carina.

Oggetto: Matrix ha troppe colonne<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Non so perché c'è un limite per Matrice di stampa .
Prova il Char () funzione invece.
Salva file di testo ( "my_matrix.txt" , Char ( Indice ( 1 , 128 ))) ;