Как формат вывода, используя Матлаб по num2str
Я пытаюсь вывести массив чисел в виде строки в MATLAB. Я знаю, что это легко сделать с помощью num2str, но я хотел, чтобы запятые следовали через пробел, чтобы отделить цифры, а не табуляции. Элементы массива будут иметь разрешение не более десятых долей, но большинство из них будут целыми числами. Есть ли способ отформатировать выходные данные так, чтобы ненужные конечные нули были оставлены? Вот что мне удалось собрать воедино:
data=[2,3,5.5,4];
datastring=num2str(data,'%.1f, ');
datastring=['[',datastring(1:end-1),']']
, что дает результат:
[2.0, 3.0, 5.5, 4.0]
Скорее чем:
[2, 3, 5.5, 4]
Есть предложения?
EDIT: я только что понял, что могу использовать strrep чтобы исправить это, вызовите
datastring=strrep(datastring,'.0','')
Но это кажется еще более клуджевым, чем то, что я делал.
2 ответов:
Вместо:
datastring=num2str(data,'%.1f, ');Попробуйте:
datastring=num2str(data,'%g, ');Вывод:
[2, 3, 5.5, 4]Или:
datastring=sprintf('%g,',data);Вывод:
[2,3,5.5,4]
Другой вариант использования MAT2STR:
» datastring = strrep(mat2str(data,2),' ',',') datastring = [2,3,5.5,4]С
2, являющимся числом цифр точности.
Comments