셀 배열의 내용으로 텍스트 파일을 만들려고합니다. 아래는 MWE입니다. 파일 인수없이 fprintf
을 사용하면 (예 : fprintf(['\t\\hline ',repmat('%s & ',1,size(A,1)),'\b\b','\\\\','\n'],A{:})
과 같이 명령 창에서 인쇄하는 것만으로) 코드가 올바르게 작동합니다. 그러나 fopen
으로 파일을 열고 같은 것을 쓰려고하면 이중 백 스페이스 (\b\b
)가 작동하지 않습니다.fprintf에서 txt 파일 (MATLAB)에서 작동하지 않는 백 스페이스를 생성하는 ' b'
MWE :
내가 명령 창에서 무엇을 얻을A = num2cell(rand(3,3));
fid = fopen('test.txt','w');
fprintf(fid,['\t\\hline ',repmat('%s & ',1,size(A,1)),'\b\b','\\\\','\n'],A{:})
:
\hline 7.922073e-01 & 9.594924e-01 & 6.557407e-01 \\
\hline 3.571168e-02 & 8.491293e-01 & 9.339932e-01 \\
\hline 6.787352e-01 & 7.577401e-01 & 7.431325e-01 \\
나는 'TEST.TXT'파일의 내용물 :
\hline 7.922073e-01 & 9.594924e-01 & 6.557407e-01 & \\
\hline 3.571168e-02 & 8.491293e-01 & 9.339932e-01 & \\
\hline 6.787352e-01 & 7.577401e-01 & 7.431325e-01 & \\
을 붙여 넣기 할 때 이 질문에 대한 'test.txt'의 내용은 .txt 파일을 볼 때 정확하게 표시되는 것이 아니라 일부 상자가 뒷부분 보행이 적용되어야합니다 (아래 그림). 백 스페이스를 사용하여 .txt 파일에서 &
을 삭제하고 삭제하려면 어떻게해야합니까? 파일이 정상적으로 작동에 서면 어떻게 그렇게 생각하지 않습니다
'A '의 내용이 부동 소수점 숫자 인 경우'% s' 대신'% f'을 사용해야합니다. – rahnema1
@ rahnema1 그게 문제를 해결하지 못합니다. – Rodrigues
[관련] (https://stackoverflow.com/questions/43299376/writing-a-backspace-in-a-file/43299424). 백 스페이스의 ASCII 코드를 파일에 씁니다. – rahnema1