Ich mag eine Excel-Datei mit 10 Blatt mit Matlab mit der xlsread Funktion wie folgt lesen:Matlab - Warum kann xslread manchmal keine Zahl als Blattargument verwenden?
SPLByFrequency = zeros(173, 10);
for i = 1:10
rawData = xlsread('mediciones', i);
SPLByFrequency(:, i) = rawData(84:256, 3);
end
Es ist nicht das erste Mal, dass ich Blätter lesen Excel eine Zahl als Argument und ich hatte nie ein Problem aber dieses Mal ist es nicht lassen sie mich es nicht tun, und ich diesen Fehler:
Error using xlsread (line 207)
In basic mode, sheet argument must be a string.
Error in TareaB53 (line 11)
rawData = xlsread('mediciones', i);
ich habe nicht in der Lage gewesen, diese ‚Basis‘ Modus zu wechseln und dabei einige Debuggen ich gefunden habe, dass, seltsam genug, xlsread ('mediciones', 1) funktioniert, funktioniert aber mit keiner anderen Nummer.
Ich habe gefunden, dass es eine Möglichkeit gibt, diesem Problem zu entkommen, indem ich xlsinfo verwende, um die Blattnamen zu erhalten und dann die Blattfolgen als Argument zu verwenden, aber ich verstehe nicht, warum ich es nicht tun konnte einfach direkt mit einer Nummer, warum kann ich es nur mit der Nummer 1 machen oder warum es plötzlich nicht funktioniert, während ich es immer mit einer Nummer als Argument gemacht habe.
Gibt es eine Möglichkeit, dies zu lösen und direkt eine Zahl als Blattargument zu verwenden?
Bearbeiten - Zusammenfassung und neue Informationen
Wenn Sie nicht Excel für Windows installiert haben, xlsread
im Basismodus arbeitet, so dass Sie keine Nummer für das Blatt Argument verwenden können.
Daher, für Portabilität, wäre es besser, xlsinfo
zu verwenden, um die Blattfolgen zu erhalten.
Aus irgendeinem Grund, auch wenn es scheint, dass es nicht (für mich) funktioniert es auf OS X 10.9. Unter OS X 10.11 funktioniert es jedoch nicht mehr (ich habe Matlab Release 2012a).
Aus dem Matlab doc: 'Basic-Modus ist die Standardeinstellung für Computer ohne Excel für Windows.'. Normalerweise ist 'basic' ein Flag _off_, das Sie aktivieren können. Wenn jedoch Excel (Windows) ** nicht auf Ihrem Computer installiert ist, wird das Flag trotzdem aktiviert und Sie müssen die Blattnummer als String angeben. Ich weiß nicht, ob die Tatsache, dass der Index "1" funktioniert, ein Fehler oder einfach "xlsread" ist, der die Eingabe ungültig macht und einen Standardwert verwendet (das erste Blatt), aber Ihr Programm wird robuster (und portabler) sein sich bemühen, die Blattnamen zu lesen und sie als Zeichenfolge zu bezeichnen. – Hoki
@Hoki Ich benutze tatsächlich einen Mac und ich habe Excel installiert (sollte ich den Beitrag bearbeiten, um diese Informationen hinzuzufügen? Ich bin ein Neuling hier). Sie wissen, wie Sie die Flagge abstellen können? Ich habe es nicht gefunden. Ich habe '' '' für das Modusargument versucht, aber es funktioniert nicht für mich. – Llermy