Die Indizierung muss erscheinen, zuletzt in einem index-Ausdruck

Ich habe einen Vektor CD1 (120-by-1) und ich getrennte CD1 in 6 Teile. Für Beispiel, der erste Teil wird extrahiert von Zeile 1 bis Zeile 20 in CD1, und der zweite Teil wird extrahiert, von Zeile 21 bis Zeile 40 in CD1, etc. Für jedes Teil, das ich brauche, um zu berechnen, die Mittel der absoluten Werte der zweite Differenzen der Daten.

for PartNo = 1:6   

    % extract data                
    Y(PartNo) = CD1(1 + 20*(PartNo-1):20*(PartNo),:); 

    % find the second difference  
    Z(PartNo) = Y(PartNo)(3:end) - Y(PartNo)(1:end-2);  

    % mean of absolute value
    MEAN_ABS_2ND_DIFF_RESULT(PartNo) = mean(abs(Z));    

end

Jedoch die oben genannten Befehle erzeugen den Fehler:

()-indexing must appear last in an index expression for Line:2

Irgendwelche Ideen, den code zu ändern, um es zu tun, was ich will?

  • Nicht Y(PartNo) eine Skalare? Und die Rechte Seite ein Vektor?
  • RS ist der Vektor..
  • Was ist also die Bedeutung von etwas zu schreiben wie: Y(1) = [1 2 3] ? Und später Y(1)(3:end) - Skalare Indizierung?
  • Warten Sie...ich fürchte, ich habe deine Frage missverstanden. Vergiss meine Antwort, gehen mit @dustincarr die Lösung in der Stelle 🙂
  • Nur eine Allgemeine Bemerkung: whitespace ist FREI! Es gibt kein Papier zum speichern in einem computer-editor, und dichter code, macht es nicht schneller, also...es öffnen sich ein bisschen, es ist besser für die Augen 🙂
  • Sie tatsächlich beantwortet die konkrete Frage viel besser als ich getan, da die Fragen speziell über die Fehlermeldung.
  • Ah, aber es war nicht komplett zu das Ausmaß, dass die Fehlermeldung tritt auch auf, wenn dabei a(2)(3) mit einer gewöhnlichen matrix. Aber werde ich un-löschen Sie meine Frage, und sehen, was der OP meint.
  • Interessant zu wissen, dass Octave-Unterstützung für mehrere Indizierung. x = 1:3 dann x(1:2)(2) unterstützt wird

InformationsquelleAutor Tony YEe | 2012-11-29
Schreibe einen Kommentar