Re: [Scilab-users] csvread different separator

2016-05-24 Thread Serge Steer

Le 23/05/2016 23:15, Florian Winter a écrit :

Hello
I'm trying to write a function that reads data from a single file. It 
is a rather large file so I wanted to use the csvread function because 
it is faster than opening the file and then using scanf.
I am surprised by the fact csvread is faster than mfscanf. mfscanf 
directly call C code while csvread is xritten in Scilab...


The problem is, that my file is not a real csv file. It has different 
number of spaces in between every data entry.

It looks like this:

1 2  3   4   5 6 7   8
the spaces between each entry is the same in every row so between 1 
and 2 there is a single space, between 2 and 3 there are two spaces, 
between 3-4 and 4-5 three spaces, 5-6 one, 6-7 one and 7-8 three again.



Is there a faster way than opening the file and using a scanf?

Thank you!
Florian


___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


Re: [Scilab-users] csvread different separator exclusive)

2016-05-24 Thread scilab . 20 . browseruk
Florian,

If you have Perl available, you could regularise the file with the following 
one-liner:
 
perl -nle "print join ' ', split ' '" out.file

(You'll need to switch 's to "s and vice versa if you're on *nix.)

(Despite the way that looks, the split ' ' will habdle any number of 
intervening spaces or tabs and join ' ', will replace them with a single space.
Use join "\t" to get a proper tab delimited output file.)

It takes around 30s/GB on my machine.

Cheers, Buk

> -Original Message-
> From: scilab.browseruk.c9f0207c9f.flotschos#gmail@ob.0sg.net
> Sent: Mon, 23 May 2016 23:15:20 +0200
> To: users@lists.scilab.org
> Subject: [Scilab-users] csvread different separator
> exclusive)
> 
> Hello
> I'm trying to write a function that reads data from a single file. It is
> a
> rather large file so I wanted to use the csvread function because it is
> faster than opening the file and then using scanf. The problem is, that
> my
> file is not a real csv file. It has different number of spaces in between
> every data entry.
> It looks like this:
> 
> 1 2  3   4   5 6 7   8
> the spaces between each entry is the same in every row so between 1 and 2
> there is a single space, between 2 and 3 there are two spaces, between
> 3-4
> and 4-5 three spaces, 5-6 one, 6-7 one and 7-8 three again.
> 
> 
> Is there a faster way than opening the file and using a scanf?
> 
> Thank you!
> Florian


FREE ONLINE PHOTOSHARING - Share your photos online with your friends and 
family!
Visit http://www.inbox.com/photosharing to find out more!



___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


Re: [Scilab-users] csvread different separator

2016-05-23 Thread Tan Chin Luh


How about fscanfMat?

On 24/5/2016 5:15 AM, Florian Winter wrote:

1 2  3   4   5 6 7   8



___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


[Scilab-users] csvread different separator

2016-05-23 Thread Florian Winter
Hello
I'm trying to write a function that reads data from a single file. It is a
rather large file so I wanted to use the csvread function because it is
faster than opening the file and then using scanf. The problem is, that my
file is not a real csv file. It has different number of spaces in between
every data entry.
It looks like this:

1 2  3   4   5 6 7   8
the spaces between each entry is the same in every row so between 1 and 2
there is a single space, between 2 and 3 there are two spaces, between 3-4
and 4-5 three spaces, 5-6 one, 6-7 one and 7-8 three again.


Is there a faster way than opening the file and using a scanf?

Thank you!
Florian
___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users