检查尺寸是否兼容,单位是否一致gydF4y2Ba
C = checkUnits (gydF4y2Ba
检查gydF4y2BaexprgydF4y2Ba
)gydF4y2BaexprgydF4y2Ba
用于兼容的维度和一致的单位,并返回包含字段的结构gydF4y2Ba一致的gydF4y2Ba
和gydF4y2Ba兼容的gydF4y2Ba
.字段包含逻辑gydF4y2Ba0gydF4y2Ba
(gydF4y2Ba假gydF4y2Ba
)或者合乎逻辑gydF4y2Ba1gydF4y2Ba
(gydF4y2Ba符合事实的gydF4y2Ba
),以检查结果为准。gydF4y2Ba
exprgydF4y2Ba
如果所有术语具有相同的维度(如长度或时间),则具有兼容的维度。gydF4y2BaexprgydF4y2Ba
如果同一维度的所有单位都能以1的转换系数相互转换,则具有一致的单位。gydF4y2Ba
C = checkUnits (gydF4y2Ba
只有支票gydF4y2BaexprgydF4y2Ba
、“兼容”)gydF4y2BaexprgydF4y2Ba
兼容的维度。gydF4y2Ba
C = checkUnits (gydF4y2Ba
只有支票gydF4y2BaexprgydF4y2Ba
(“一致的”)gydF4y2BaexprgydF4y2Ba
为单位一致。gydF4y2Ba
检查方程式或表达式的尺寸。检查尺寸以确认方程式或表达式有效。gydF4y2Ba
验证方程的尺寸gydF4y2Ba
通过使用gydF4y2Ba检查单位gydF4y2Ba
与选择gydF4y2Ba“兼容”gydF4y2Ba
.MATLABgydF4y2Ba®gydF4y2Ba假设符号变量是无量纲的gydF4y2Ba检查单位gydF4y2Ba
函数返回逻辑gydF4y2Ba0gydF4y2Ba
(gydF4y2Ba假gydF4y2Ba
),因为方程的维度不相容。gydF4y2Ba
u = symunit;符号A B eqn = A*u.m/u。s = = B * u.kg /美国;checkUnits (eqn“兼容”)gydF4y2Ba
逻辑0gydF4y2Ba
取代gydF4y2Bau.kggydF4y2Ba
与gydF4y2Bau.mgydF4y2Ba
通过使用gydF4y2Ba潜艇gydF4y2Ba
然后重复检查。因为维度现在是兼容的,gydF4y2Ba检查单位gydF4y2Ba
返回逻辑gydF4y2Ba1gydF4y2Ba
(gydF4y2Ba符合事实的gydF4y2Ba
).gydF4y2Ba
eqn =潜艇(eqn u.kg u.m);checkUnits (eqn“兼容”)gydF4y2Ba
逻辑1gydF4y2Ba
检查单元一致性比检查兼容性更重要。当同一维度的所有单位可以以1的转换系数相互转换时,单位是一致的。例如,1牛顿等于1千克米每秒gydF4y2Ba2gydF4y2Ba但不是1公斤厘米/秒gydF4y2Ba2gydF4y2Ba.gydF4y2Ba
表明,gydF4y2Ba1gydF4y2Ba
牛顿与gydF4y2Ba1gydF4y2Ba
公斤米/秒gydF4y2Ba2gydF4y2Ba通过检查gydF4y2Baexpr1gydF4y2Ba
但不与gydF4y2Ba1gydF4y2Ba
千克厘米/秒gydF4y2Ba2gydF4y2Ba通过检查gydF4y2Baexpr2gydF4y2Ba
.gydF4y2Ba
u = symunit;expr1 = 1 * u。N + 1 * u.kg * u.m /美国^ 2;expr2 = 1 * u。N + 1 * u.kg * u.cm /美国^ 2;checkUnits (expr1“一致”)gydF4y2Ba
逻辑1gydF4y2Ba
checkUnits (expr2“一致”)gydF4y2Ba
逻辑0gydF4y2Ba
通过展示这一点来展示兼容性和一致性之间的区别gydF4y2Baexpr2gydF4y2Ba
具有兼容的尺寸,但不一致的单位。gydF4y2Ba
checkUnits (expr2“兼容”)gydF4y2Ba
逻辑1gydF4y2Ba
通过将多个方程式或表达式放置在一个数组中来检查它们。gydF4y2Ba检查单位gydF4y2Ba
返回一个数组,该数组的元素与输入的元素对应。gydF4y2Ba
检查多个方程以获得兼容的尺寸。gydF4y2Ba检查单位gydF4y2Ba
返回gydF4y2Ba[1 0]gydF4y2Ba
,这意味着第一个方程具有兼容的维数,而第二个方程不具有兼容的维数。gydF4y2Ba
u = symunit;Syms x y z eqn1 = x*u。m = = y * u.m ^ 2 / (z * u.m);eqn2 = x * u。m + y * u。年代==z*u.m; eqns = [eqn1 eqn2]; compatible = checkUnits(eqns,'Compatible')
Compatible = 1×2 logical array 1 0gydF4y2Ba
使用以下方法检查方程或表达式的兼容尺寸和一致单位:gydF4y2Ba检查单位gydF4y2Ba
.gydF4y2Ba
定义运动抛射体的x和y位移方程。检查它们的单元的兼容性和一致性。gydF4y2Ba
u = symunit;美国g = 9.81 * u.cm / ^ 2;v = 10 * u.m /美国^ 2;Syms (x(t) y(t) x(t) = v*cos()*t;Y (t) = v*sin()*t + (-g*t²)/2;S = checkUnits([x y])gydF4y2Ba
S = struct with fields: Consistent: [1 0] Compatible: [1 1]gydF4y2Ba
第二个方程的维数兼容,但单位不一致。这种不一致是因为gydF4y2BaggydF4y2Ba
错误地使用cm而不是m。重新定义gydF4y2BaggydF4y2Ba
再检查一下方程。第二个方程现在有一致的单位。gydF4y2Ba
美国g = 9.81 * u.m / ^ 2;Y (t) = v*sin()*t + (-g*t²)/2;S = checkUnits([x y])gydF4y2Ba
struct with fields: Consistent: [1 1] Compatible: [1 1]gydF4y2Ba
findUnitsgydF4y2Ba
|gydF4y2BaisUnitgydF4y2Ba
|gydF4y2BanewUnitgydF4y2Ba
|gydF4y2BaseparateUnitsgydF4y2Ba
|gydF4y2Bastr2symunitgydF4y2Ba
|gydF4y2BasymunitgydF4y2Ba
|gydF4y2Basymunit2strgydF4y2Ba
|gydF4y2BaunitConversionFactorgydF4y2Ba