La matrice a trop de colonnes<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Pourquoi JNK ne peut-il pas gérer plus de 128 colonnes? oups je veux dire JMP.
Mon script:
PrintMatrix (Index (1, 129))
Journal de sortie:
Matrix a trop de colonnes dans l'accès ou l'évaluation de 'Print Matrix', argument incorrect (index (1, 129)), print Matrix / * ### * / (index (1, 129))
Dans le script suivant, erreur marquée par / * ### * /
Matrice d'impression / * ### * / (Index (1, 129))
J'aime la capacité de la fonction PrintMatrix à formater une matrice en une chaîne afin que je puisse l'écrire dans un fichier. Mon cas d'utilisation actuel est une matrice avec le même nombre de lignes et de colonnes - en montrant simplement un exemple simple ici.
Mettre à jour:
Merci pour les bonnes suggestions, mais pour développer mon cas d'utilisation:
J'ai une image de 1024x1024 pixels comme celle-ci:
image_mat = Forme (Index (1, 1024 ^ 2), 1024, 1024);
et avec cette simple ligne, j'ai des tabulations entre chaque valeur d'intensité ET un caractère de saut de ligne au lieu d'une tabulation après la dernière valeur de chaque ligne:
illustrated_mat_for_save = PrintMatrix (image_mat, << style ("autre"), << ligne début (""), << ligne fin (""), << séparé ("!!"));
Et puis je peux écrire tout ce dont j'ai besoin, y compris certains en-têtes, dans un autre support.
SaveTextFile (name_of_savefile, Concat (header_for_save, "\! N", print_mat_for_save )
Peut-être y a-t-il des alternatives à parcourir en boucle un million de valeurs pour le charger et ajouter un onglet à l'exception du dernier col d'une ligne qui reçoit un saut de ligne?
Re: Matrix a trop de colonnesMME. Vous étiez presque là. Voici mon résultat final pour obtenir le formatage dont j'avais besoin en utilisant substitut. Merci de m'avoir orienté dans la bonne direction, mais remplacez «se sent» plus lentement que de faire une boucle for. Et comme je l’ai fait avec la boucle for, je peux spécifier la largeur et le nombre de décimales.
Avec méthode de substitution:
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 pour les boucles:
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 a trop de colonnes Remplacer() est assez efficace. Essayez quelque chose comme ça:
image_mat = Forme ( Indice ( 1 , 1024 ^ 2 ) , 1024 , 1024 ) ;
print_mat_for_save = Remplacer ( Carboniser ( image_mat ) , "," , "" , "" , "\! t" ) ;
Enregistrer le fichier texte ( "mon_matrix.txt" , print_mat_for_save ) ;
Re: Matrix a trop de colonnes<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />PrintMatrix est pour la jolie impression. Je ne sais pas pourquoi il y a une limite sur la largeur. Vous pouvez utiliser char (matrice) si vous pouvez utiliser une chaîne pas si jolie.

Re: Matrix a trop de colonnes<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je ne sais pas pourquoi il y a une limite pour Matrice d'impression .
Essaie le Carboniser() fonction à la place.
Enregistrer le fichier texte ( "ma_matrix.txt" , Carboniser ( Indice ( 1 , 128 ))) ;