Сравните переменные независимо от их типа в MATLAB - PullRequest
0 голосов
/ 04 ноября 2019

Есть ли в Matlab возможность сравнивать переменные независимо от их типа данных? В качестве примера: я ищу способ, где A = B возвращает true, когда A = 1 и B = 1, даже когда A является двойным, а B является строкой / таблицей / ячейкой и т. Д.

Операторы ==, isequal() и ismember() часто дают ошибки или возвращают false при сравнении идентичных значений с разными типами данных.

Я также пытался использовать double(A)==double(B), но это также приводило к ошибкам внесколько случаев. Например, ошибка Undefined function 'double' for input arguments of type 'table'. To convert to numeric, use the TABLE2ARRAY function, or extract data using dot or brace subscripting. И когда я затем использую table2array(), это дает Undefined operator '==' for input arguments of type 'cell'.

Так есть ли одна из следующих возможностей:

  1. Функция сравнения чисел/ строки независимо от их типа данных
  2. Функция, используемая для преобразования всех типов данных в другой тип данных (например, универсально используемый string())
  3. Возможность активировать «умный режим» в Matlab, гдеit ...

3.a) ... автоматически распознает правильный тип данных

3.b) ... автоматически рекомендует правильный способ преобразования переменных

Наиболее разумный способ, вероятно, будет номером 2, поскольку нет никаких причин, по которым string(A) == string(B) должен когда-либо выдавать ошибку. Однако Matlab склонен сообщать мне об ошибках типа Conversion to string from table is not possible is wrong (что неверно, возможно преобразование , просто оно не реализовано в этой функции)

...