Effacer les filtres
Effacer les filtres

Alternative to textread on Linux

1 vue (au cours des 30 derniers jours)
Paul Huter
Paul Huter le 3 Déc 2012
I'm currently using textread to load a text file for later display in an edit field on my GUI. However, I'm in Linux, and discovered memory isn't freed up - so, my program got really slow, and I had to close MATLAB because I keep loading more and more text files. Is there a way to display my text file without loading the whole thing into memory?

Réponse acceptée

Walter Roberson
Walter Roberson le 3 Déc 2012
You should be using textscan() instead of textread()
There is no way in MATLAB to display the content of a file in a uicontrol() editbox without loading the file in to memory.
If you set() the String property of the uicontrol to be the cell array of strings, then due to MATLAB's copy-on-write behavior, this will not duplicate the storage of what was read in, only share it (until one of the two locations changes.)
  2 commentaires
Paul Huter
Paul Huter le 3 Déc 2012
I will change to textscan(), but is there a way to clear that memory? The way my code is set up, when a filename is selected, the file is displayed, but if I go from file A to file B and back to file A, file A is loaded twice. I am going to try to come up with a way to only load once, but suggestions are appreciated.
Walter Roberson
Walter Roberson le 3 Déc 2012
The memory is cleared automatically when the variable you read it in to is deleted -and- the String property of the editbox is set to something else.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Environment and Settings dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by