Wenn die Eingabe-Ausdruck enthält eine symbolische variable mit dem VPA-Funktion statt?

Im tring subtrahieren der diagonalen Werte mit eigval und speichern Sie den neuen Wert in der matrix Diagonal:

   CovarianceMatrix=[8 -3 1;2 1 0;3 4 5];
   Col=3;
   Row=3;
   store=1;
    syms eigval;

   for loop1= Col:-1:1
    Rw=1;
    syms eigval;
    for loop2= 1:Row
        if Rw==loop1
            Diagonal= (CovarianceMatrix(Rw,loop1)-eigval);
             Fix_Diagonal_2(loop2,store)=sym(Diagonal);
        else
            Diagonal= CovarianceMatrix(Rw,loop1);
            Fix_Diagonal_2(loop2,store)=Diagonal;
        end

        Rw=Rw+1;
        loop1=loop1-1;

        if loop1==0
             loop1=3;
        end

    end
    store=store+1;

end

Aber, denn ich bin mit einer symbolischen variable gibt es eine Fehlermeldung:

      The following error occurred converting from sym to double:
      Error using mupadmex
      Error in MuPAD command: DOUBLE cannot convert the input expression into a double
      array.

      If the input expression contains a symbolic variable, use the VPA function      
      instead.

Wie kann ich dieses Problem lösen? Ich möchte kopieren Sie die neue subtrahiert den Wert in der diagonalen der matrix.

  • Bitte verwenden Sie korrekte Einrücken von code, es ist sehr schwer zu Lesen, Codes ohne.
  • Was ist symbolisch? Du hast den code nicht lauffähig. Einige einfache input-Werte, die sich replizieren, Ihr Problem. Und poste die gesamte Fehlermeldung, einschließlich der Zeilennummern, welche Zeile in deinem code den Fehler auslöst?
InformationsquelleAutor user3303896 | 2014-02-16
Schreibe einen Kommentar