Je souhaite faire ce qui suit dans Matlab: -J'ai un fichier texte au format suivant: 1 1 0,242 1 2 0,332 .. -La première colonne est une liste de l'indice d'une matrice, la deuxième colonne est le jième indice d'une matrice, et la troisième colonne est la valeur de l'indice particulier (i, j) 75 74 0.485 75 75 0.726 ). Bref, j'ai une matrice 75x75 avec ses valeurs dans un fichier texte. -Je souhaite lire ces données et recréer la matrice dans matlab afin que je puisse y faire des opérations. Des suggestions?Comment recréer une matrice à partir des indices et des valeurs fichier texte froma dans Matlab
Répondre
Cela dépend si vous voulez le faire de manière interactive ou par programmation.
interactivement:
Importer le fichier texte à l'aide de l'assistant. Vous obtiendrez une matrice nx3 (disons data
) de valeurs. Ensuite, utilisez une boucle simple pour mettre toutes les valeurs à leur place.
A = zeros(75, 75);
for idx = 1:size(data, 1)
A(data(idx, 1), data(idx, 2)) = data(idx, 3);
end
Programmatically:
Est-ce que l'importation du fichier par programmation textscan
par exemple. Puis procédez comme ci-dessus.
Ce que vous décrivez est un fichier stockant une matrice clairsemée (au format tuples). Une matrice clairsemée est une matrice où la plupart des éléments sont 0, donc pour économiser de l'espace, vous ne stockez que les éléments non-nulles. Matlab a un objet matriciel sparse intégré. Vous pouvez charger votre fichier directement:
>> load matrix.mtl;
>> A = spconvert(matrix);
voir: http://bebop.cs.berkeley.edu/smc/formats/matlab.html
Une autre chose que vous voudrez peut-être prendre en compte est la fonction sparse
qui prend trois vecteurs et les transforme en une matrice creuse.
Une matrice clairsemée peut être convertie en une matrice dense (ie un tableau 2D, qui est ce que la plupart des gens veulent dire quand ils disent matrice) utilisent full(A)
En supposant que votre fichier est nommé « data.txt » et contient que les informations formatées comme vous l'avez mentionné, je pense que la meilleure façon de le faire, est un exemple de code comme ceci:
fid=fopen('data.txt','r');
data=fscanf(fid,'%g',[3 Inf]);
fclose(fid);
[m n]=size(data);
a=zeros(75,75);
for i=1:n
a(data(1,i),data(2,i))=data(3,i);
end
Si le fichier contient d'autres informations aussi, il faut prendre soin de recueillir les lignes et les données appropriées . À titre d'exemple des résultats avec les quelques échantillons que vous avez fournis, la matrice de données sera
data =
1.0000 1.0000 75.0000 75.0000
1.0000 2.0000 74.0000 75.0000
0.2420 0.3320 0.4850 0.7260
faites-nous savoir s'il y a d'autres problèmes.Bonne chance;)
Pour recréer une matrice complète de 75 par 75 à Matlab, vous pouvez d'abord charger votre fichier en utilisant la fonction LOAD:
data = load('datafile.txt','-ascii');
recréer ensuite votre matrice (sans la nécessité d'un pour boucle) en convertissant vos indices d'indice en linear indices en utilisant soit la fonction SUB2IND ou un simple calcul de votre choix:
mat = zeros(75); %# Initialize your matrix to zeroes
mat(sub2ind([75 75],data(:,1),data(:,2))) = data(:,3); %# Use SUB2IND...
%# ... or...
mat(75.*(data(:,2)-1)+data(:,1)) = data(:,3); %# ... convert them yourself.
- 1. Comment insérer des valeurs dans une matrice dans matlab?
- 2. Comment stocker des valeurs dans une matrice dans MATLAB
- 3. Matlab - Donner des indices à des vecteurs
- 4. MATLAB: Créer une matrice à partir de valeurs de boucle?
- 5. Obtenir les indices des valeurs maximales de colonnes de la matrice dans Matlab
- 6. Modification des valeurs dans une matrice dans Matlab
- 7. Matlab lisant des valeurs hexadécimales à partir d'un fichier texte avec des valeurs non-hexagones intercalées?
- 8. lu à partir d'un fichier texte et le charger dans une matrice dans Matlab
- 9. comment lire une matrice à partir d'un fichier texte dans matlab
- 10. Initialiser matrice basée sur MATLAB® indices
- 11. Matlab sélectionnant des valeurs basées sur des valeurs de matrice
- 12. Concat des éléments à un col dans une matrice Matlab
- 13. matlab - trouver les indices des éléments dans x
- 14. Sélection de plusieurs valeurs à partir d'une matrice de données avec des indices
- 15. Matlab - Modification des valeurs Cochez Marquer Traçage une matrice Lorsque
- 16. Créer une image d'erreur à partir d'une matrice contenant des valeurs d'erreur (MATLAB)
- 17. Insérer des valeurs d'une matrice à partir de la ligne 2 en utilisant XLSWRITE dans MATLAB
- 18. Matlab - Écrire du texte et des données numériques dans un fichier dans une boucle
- 19. la construction d'une matrice dans Matlab à partir des valeurs générées par boucle
- 20. Trouver des indices de plusieurs éléments dans une matrice?
- 21. Lire le fichier texte des entiers dans une matrice 2D dans Matlab
- 22. `qui()` fonction des indices de la matrice
- 23. Créer efficacement une matrice à partir des valeurs de fonction
- 24. comment ajouter des valeurs conditionnellement à une matrice sans utiliser une boucle for?
- 25. Création matrice à partir de deux vecteurs de (dupliqués) indices dans Matlab
- 26. problème avec sub2ind et matrice de matrice dans matlab avec des images
- 27. comment enregistrer des valeurs dans un fichier texte au format spécifique en utilisant matlab
- 28. Obtenir une matrice à partir du fichier texte dans Mathematica
- 29. Recréer le fichier multimédia à partir des journaux wireshark
- 30. Comment générer la matrice et le vecteur suivants à partir des données d'entrée données dans MATLAB?