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 Comment

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]

Sign in to comment.

 Accepted Answer

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}

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!