textscan doesn't work well when I read 2 lines batch.

using code below I can't read third number of data I think encoding newline has problem. interestingly when I make test data by typing with same form it works well. but when I deal with raw data it doesn't work. what's the problem?
data :
842428 / Present Voltage = 229
Present Velocity = 8973
842863 / Present Voltage = 228
Present Velocity = 8997
code :
clc; clear; close all;
fid = fopen("23V, 0.17~0.20A.txt","r");
data = textscan(fid,'%d / Present Voltage = %d Present Velocity = %d');
fclose(fid);
result :
data = 842428, 229, []

1 comentario

Try this
str = sprintf( '842428 / Present Voltage = 229\n Present Velocity = 8973\n' );
str = [ str, str ];
data = textscan( str,'%d / Present Voltage = %d\n Present Velocity = %d\n')
data =
[2x1 int32] [2x1 int32] [2x1 int32]

Iniciar sesión para comentar.

 Respuesta aceptada

Akira Agata
Akira Agata el 3 de Mayo de 2018
Editada: Akira Agata el 3 de Mayo de 2018
Seems that you need to add newline code (\n) or carriage return + newline codes (\r\n), like:
data = textscan(fid,'%d / Present Voltage = %d\r\n Present Velocity = %d');
In my PC environment (Windows10 + MATLAB R2018a), it returns 1-by-3 cell array.
>> data
data =
1×3 cell array
{2×1 int32} {2×1 int32} {2×1 int32}

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 3 de Mayo de 2018

Comentada:

el 3 de Mayo de 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by