Der Titel sagt es schon. Gegeben drei Variablen:

d = 2;
s = sym(2);
v = vpa(2);

Wie kann ich feststellen, welche Variable von welchem ​​Typ ist? Um Doppel zu identifizieren, kann ich natürlich isa( d, 'double' ) tun. Alle mir bekannten Methoden zur Identifizierung symbolischer Variablen unterscheiden jedoch nicht zwischen vpa und sym, z. isa( s, 'sym' ) und isa( v, 'sym' ) geben beide true zurück.

-1
tommsch 2 Sept. 2020 im 15:06

2 Antworten

Beste Antwort

vpa(2) ist ein Sym, wie von Luis Mendo in den Kommentaren 1 , 2 .

Was Sie suchen, ist isSymType (eingeführt in R2019a).

isSymType(s,'integer')
isSymType(v,'vpareal')
1
Sardar Usama 3 Sept. 2020 im 11:05

Wenn Sie ausnutzen, dass vpa eine Gleitkommazahl ist, können Sie in Matlab R2018b und älter Folgendes tun:

isAlways( s+10^sym(-100000)==s )
isAlways( v+10^sym(-100000)==v )

Der erste gibt false zurück, der zweite true.

0
tommsch 9 Sept. 2020 im 06:46