Sembra che questo può essere fatto, qualcuno ha postato una risposta su MathWorks utilizzando un termine simile di "file null". Non sono sicuro se questa è una terminologia valida, ma potrebbe essere una riduzione di "null device file".
Il modo per fare riferimento al dispositivo di nulla dipende dal sistema operativo ...
nullFID = fopen('NUL:' ); % Windows
nullFID = fopen('/dev/null'); % UNIX
E sembra anche il riferimento varia da Matlab rilascia. Si consideri il seguente script
ver
nullFID = fopen('NUL:' , 'w')
fprintf(nullFID , '12345')
nullFID = fopen('NUL:' )
fprintf(nullFID , '12345')
nullFID = fopen('NUL' , 'w')
nullFID = fopen('NUL')
E il seguente output generato da due versioni di Matlab ...
R2011b
>> ver
-------------------------------------------------------------------------------------
MATLAB Version 7.13.0.564 (R2011b)
MATLAB License Number: xxxx
Operating System: Microsoft Windows 7 Version 6.1 (Build 7601: Service Pack 1)
Java VM Version: Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode
-------------------------------------------------------------------------------------
MATLAB Version 7.13 (R2011b)
>> nullFID = fopen('NUL:' , 'w')
nullFID = 119
>> fprintf(nullFID , '12345')
ans = 5
>> nullFID = fopen('NUL:')
nullFID = 120
>> fprintf(nullFID , '12345')
ans = 0
>> nullFID = fopen('NUL' , 'w')
Warning: You have chosen a reserved DOS device name for your filename.
Please choose another valid filename
nullFID = -1
>> nullFID = fopen('NUL')
nullFID = -1
R2015a
>> ver
----------------------------------------------------------------------------------------------------
MATLAB Version: 8.5.0.197613 (R2015a)
MATLAB License Number: 1093113
Operating System: Microsoft Windows 7 Professional Version 6.1 (Build 7601: Service Pack 1)
Java Version: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
----------------------------------------------------------------------------------------------------
MATLAB Version 8.5 (R2015a)
>> nullFID = fopen('NUL:' , 'w')
nullFID = -1
>> fprintf(nullFID , '12345')
Error using fprintf
Invalid file identifier. Use fopen to generate a valid file identifier.
>> nullFID = fopen('NUL:')
nullFID = 8
>> fprintf(nullFID , '12345')
ans = 0
>> nullFID = fopen('NUL' , 'w')
Warning: You have chosen a reserved DOS device name for your filename.
Please choose another valid filename.
nullFID = -1
>> nullFID = fopen('NUL')
nullFID = -1
Perché 'w 'in un caso e non nell'altro er? Dovresti anche menzionare il primo per Windows, il secondo per Linux. – Daniel
@Daniel, espanderò la risposta e includerò alcuni scenari di lavoro, non sono sicuro del ruolo di "w", in realtà ho copiato il codice da più punti e li ho confusi lungo il percorso. Non sembra necessario ma sembra che cambi l'ID del file in un modo misterioso. – jxramos
''w'' apre il file per la scrittura e scarta i contenuti esistenti (al contrario di'' a'', che si aggiunge). Dubito che scartare il contenuto esistente di un dispositivo nullo abbia senso, quindi questo potrebbe essere il problema. –