2016-06-15 4 views
-1

Мне нужно прочитать текстовые файлы в Matlab. В текстовых файлах есть цифры, такие как 5.875489^* - 6, что действительно равно 0,000005875489. Matlab не может прочитать этот формат, и поскольку файлов слишком много, я не могу изменить формат во всех файлах вручную. Итак, интересно, есть ли какие-нибудь советы, чтобы заставить Matlab читать файлы так, как они есть?matlab не умеет читать текстовый файл, содержащий^* с мощностью 10

Любая помощь и руководство приветствуются. Марилла.

+0

звучит для меня как вы бы лучше делать находку замены, все '^ * '->' e' для всех ваших файлов – vu1p3n0x

+0

Или исправить код, создавший эти файлы. Я никогда не видел этих обозначений, так что это кажется мне неясным. – Bernhard

+0

действительно ?? в первую очередь, '5.875489^* - 6' не равно' 0,000005875489'. '5.875489^-6' равно' 0,00002430725'. И '5.875489 * 10^-6' равно' 0,000005875489'. Если опечатка находится здесь: '0,000005875489', решение будет отличаться, и если опечатка находится здесь:' 5.875489^* - 6', решение будет чем-то другим. Очистите свою двусмысленность и отредактируйте сообщение в соответствии с этим! –

ответ

0

Как было указано @ vu1p3n0x, было бы легче заменить ^* на e с использованием замены. С другой стороны, если это непрактично, вы можете прочитать в мантиссы и экспоненту отдельно и выполнить возведение в степень в Matlab:

Raw = textscan(fid, '%f^*%f'); 
Result = Raw{1}.*10.^Raw{2};