简体   繁体   中英

How can I read a text file containing numbers in MATLAB?

I have to read different numbers in the same line in a text file. How can I pass them to an Array (for each line), if I don't know how many numbers I have to read?

I thought about reading each number and passing it to an array, until I find the New Line character. But I have a lot of files, so doing this takes a lot of time. With this arrays from each file I have to build plots. Is there any other way?

12 43 54 667 1 2 3 1 545 434 6 476
14 32 45 344 54 54 10 32 43 5 6 66

Thanks

You can open each file and read it line by line, then use textscan(str,'%d') to convert each line into an array.

Example for one file:

fid = fopen('file.txt');

tline = fgetl(fid);
while ischar(tline)
    C = textscan(str,'%d');
    celldisp(C);
    tline = fgetl(fid);
end

fclose(fid);

You would have to run the code for each file, and do something with the array C.

You can read the additional details on the function textscan .

The way to read ASCII-delimited, numerical data in MATLAB is to use dlmread , as already suggested by @BillBokeey in a comment. This is as simple as

C = dlmread('file.txt');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM