Я пытаюсь отобразить значения, полученные из серийного, но Matlab не принимает результаты десятичных чисел. Я хотел бы получить A = 0.123 от устройства, значения умножаются на 1000, а затем отправляются через последовательный порт в matlab.Предотвращение MATLAB от округления чисел и установки десятичной точности
Сценарий MATLAB получает 123, но при том, что число делится, чтобы получить исходное значение, показывает MATLAB 0.
consRollKpTemp = typecast([uint8(mess(typei + 1)), uint8(mess(typei + 2)),uint8(mess(typei + 3)), uint8(mess(typei + 4))], 'int32');
disp(consRollKpTemp);
consRollKp = consRollKpTemp/1000;
disp(consRollKp);
Который возвращает
consRollKpTemp:
123
consRollKp:
0
Я думал, что проблема была typecast(X,type) функция, которая
преобразует числовое значение в X в тип данных, указанный по типу.
, и я изменил его:
consRollKpTemp = typecast([uint8(mess(typei + 1)), uint8(mess(typei + 2)),uint8(mess(typei + 3)), uint8(mess(typei + 4))], 'single');
Но ничего не изменилось. Я пробовал предложения в this вопрос и here, но они не работали.