exponenta event banner

checkUnits

Проверка совместимых размеров и согласованных единиц измерения

Описание

пример

C = checkUnits(expr) проверки expr для совместимых размеров и согласованных единиц измерения и возвращает структуру, содержащую поля Consistent и Compatible. Поля содержат логические 0 (false) или логическое 1 (true) в зависимости от результатов проверки.

expr имеет совместимые размеры, если все термины имеют одинаковые размеры, например длину или время. expr имеет согласованные единицы измерения, если все единицы измерения одного размера могут быть преобразованы друг в друга с коэффициентом преобразования 1.

пример

C = checkUnits(expr,'Compatible') только проверки expr для совместимых размеров.

пример

C = checkUnits(expr,'Consistent') только проверки expr для согласованных единиц.

Примеры

Проверка размеров единиц измерения

Проверьте размеры уравнения или выражения. Размеры проверяются на правильность уравнения или выражения.

Проверка размеров уравнения

A мс = B кг

с помощью checkUnits с опцией 'Compatible'. MATLAB ® предполагает, что символьные переменные безразмерны. checkUnits функция возвращает логические 0 (false), поскольку размеры уравнения несовместимы.

u = symunit;
syms A B
eqn = A*u.m/u.s == B*u.kg/u.s;
checkUnits(eqn,'Compatible')
ans =
  logical
   0

Заменить u.kg с u.m с помощью subs и повторите проверку. Поскольку размеры теперь совместимы, checkUnits возвращает логический 1 (true).

eqn = subs(eqn,u.kg,u.m);
checkUnits(eqn,'Compatible')
ans =
  logical
   1

Проверка непротиворечивости единиц измерения

Проверка единиц на непротиворечивость является более строгой проверкой, чем совместимость. Единицы измерения согласуются, когда все единицы измерения одного размера могут быть преобразованы друг в друга с коэффициентом преобразования 1. Например, 1 Ньютон соответствует 1 кг м/с2, но не 1 кг см/с2.

Показать, что 1 Ньютон согласуется с 1 кг м/с2 путем проверки expr1 но не с 1 кг см/с2 путем проверки expr2.

u = symunit;
expr1 = 1*u.N + 1*u.kg*u.m/u.s^2;
expr2 = 1*u.N + 1*u.kg*u.cm/u.s^2;
checkUnits(expr1,'Consistent')
ans =
  logical
   1
checkUnits(expr2,'Consistent')
ans =
  logical
   0

Показать разницу между совместимостью и согласованностью, показав, что expr2 имеет совместимые размеры, но непротиворечивые единицы измерения.

checkUnits(expr2,'Compatible')
ans =
  logical
   1

Проверка множественных уравнений или выражений

Проверьте несколько уравнений или выражений, поместив их в массив. checkUnits возвращает массив, элементы которого соответствуют элементам ввода.

Проверьте несколько уравнений на наличие совместимых размеров. checkUnits прибыль [1 0], что означает, что первое уравнение имеет совместимые размеры, а второе уравнение - нет.

u = symunit;
syms x y z
eqn1 = x*u.m == y*u.m^2/(z*u.m);
eqn2 = x*u.m + y*u.s == z*u.m;
eqns = [eqn1 eqn2];
compatible = checkUnits(eqns,'Compatible')
compatible =
  1×2 logical array
   1   0

Проверка размеров и непротиворечивости единиц измерения

Проверка совместимых размеров и согласованных единиц уравнения или выражения с помощью checkUnits.

Определите уравнения для смещения движущегося снаряда по оси X и оси Y. Проверьте их устройства на совместимость и непротиворечивость.

u = symunit;
g = 9.81*u.cm/u.s^2;
v = 10*u.m/u.s^2;
syms theta x(t) y(t)
x(t) = v*cos(theta)*t;
y(t) = v*sin(theta)*t + (-g*t^2)/2;
S = checkUnits([x y])
S = 
  struct with fields:

    Consistent: [1 0]
    Compatible: [1 1]

Второе уравнение имеет совместимые размеры, но противоречивые единицы измерения. Это несоответствие потому, что g неправильно использует см вместо м. Переопределить g и проверьте уравнения еще раз. Второе уравнение теперь имеет согласованные единицы.

g = 9.81*u.m/u.s^2;
y(t) = v*sin(theta)*t + (-g*t^2)/2;
S = checkUnits([x y])
S = 
  struct with fields:

    Consistent: [1 1]
    Compatible: [1 1]

Входные аргументы

свернуть все

Входное выражение, указанное как символическое выражение, уравнение, функция, вектор, матрица или многомерный массив.

Представлен в R2017a