2017-06-02 1 views
1

J'ai une feuille de calcul avec environ 400 lignes et 10 colonnes de données. Je l'ai mis en place dans MATLAB pour importer cette feuille en utilisant readtable (puisque les données ne sont pas homegenous, j'ai trouvé que c'était la méthode la plus simple, sur xlsread). Le problème est, le formatage dans le fichier Excel provoque la fonction readtable être super lent. La mise en forme du nombre (décimales) et le formatage conditionnel affectent ceci.Pourquoi la suppression de formatage d'Excel augmente-t-elle la vitesse de lecture MATLAB?

% With formatting: 35 seconds 
% Without formatting: 1 second 

Je voudrais être en mesure de conserver le formatage dans le fichier Excel à des fins de visualisation, mais il semble causer des problèmes. Un moyen de résoudre ce problème sans avoir à se débarrasser de la mise en forme?

+1

Avez-vous essayé d'ajouter les arguments ', 'Basic', true);' à la fin de votre appel à 'readtable'? – gnovice

+0

Cela l'a fixé; Je vous remercie! Qu'est-ce que ça fait différemment ici? – teepee

+0

J'ai ajouté une réponse pour élaborer certains. – gnovice

Répondre

1

Vous pouvez essayer de changer le 'Basic' parameter à true lors du chargement de votre fichier Excel à l'aide readtable:

dataTable = readtable('your_file.xls', 'Basic', true); 

Lors de la lecture en mode basic, le soutien aux fonctions interactives (telles que les formules et macros) est désactivé. Cela devrait vous donner une accélération si tout ce que vous voulez, ce sont les données et rien d'autre.