set arduino sample time 10khz

greetings,
im working on a project which includes the arduino and a sound sensor.The purpose of this project is to get the readings from the sensor(analogRead),save them via matlab and print them.
My problem is that i need 10k samples/sec . I tried changing prescale to 16 but the result was the same.Could you please tell me how to make my arduino faster
so it can send 10k samples/sec ?
Thank you in advance

#define FASTADC 1
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
int start ;

void setup()
{

#if FASTADC

sbi(ADCSRA,ADPS2) ;
cbi(ADCSRA,ADPS1) ;
cbi(ADCSRA,ADPS0) ;
#endif
Serial.begin(9600) ;
start = millis() ;
Serial.println(start);

}

void loop()
{

for ( int i = 0 ; i < 10000 ; i++)
{
analogRead(A0);
}
Serial.print(millis() - start) ;
Serial.println(" msec (10000 calls)") ;
delay(10000);
}

THE result was : 301 msec (10000 calls)

but when i edit the for loop :
for ( int i = 0 ; i < 10000 ; i++)
{
Serial.println(analogRead(A0));
}

the result is >>>1 sec

the Serial.println i needed , because the matlab can read the data from arduino only from Serial.println

You asked similar questions here : https://forum.arduino.cc/index.php?topic=331271.0 and here : https://forum.arduino.cc/index.php?topic=332132.0

The baudrate of 9600 is very low, that slows down the whole sketch. Try 115200 as baudrate (for the Arduino and on the computer). The Arduino Leonardo can go faster than the baudrate, since the serial communication via the usb does not really use the baudrate.

About 1000 samples per second for an Arduino Uno is already very fast. If you read the datasheet of the ATmega328P (the microcontroller on the Uno board) then it is possible to program the registers and get more samples per second.