필터 지우기
필터 지우기

Repeat a string several times and put it somewhere in a text file

조회 수: 14 (최근 30일)
H R
H R 2017년 3월 29일
답변: Jan 2017년 3월 29일
1.a: I have a piece of code that generates a particular text 10 times (see below), how can I do this without a loop?
1.b. I have also a text file somewhere in which there is a particular symbol "[$1]" (excluding the quotation marks), I would like to replace [$1] with the resulting string in 1.a. ( If I use a loop as above to generate the string, it is easy, but I want to be able to do this operation without a loop)
s6=[];
for i=1:10
s1= 'this is a new house';
s2='Gas 1000 2 3 4 water ';
s2a=num2str(1000.900);
r=[s2a, char(10)];
s3=[s2,' ', r, char(10)];
s4='TIME';
s5=num2str([1:10]');
%s5=mat2str([1:100]');
rr='';
for j=1:size(s5,1)
rr=[rr,s5(j,:),char(10)];
end
s6= [s6 s1,char(10),s3,s4,char(10),rr];
end
I appreciate your comments and help.
  댓글 수: 3
H R
H R 2017년 3월 29일
searching is fine. My main problem is with 1a. Is there another method not to use a loop structure (i.e. for i=1:10) and use other method to combine the string 10 times and generate a new "single" string (not an array).
H R
H R 2017년 3월 29일
I think I found a way to do it with repmat(s6, 1,10)

댓글을 달려면 로그인하십시오.

채택된 답변

Jan
Jan 2017년 3월 29일
For replacing the string:
Ins = repmat(s6, 1, 10);
Str = fileread(FileName);
Str = strrep(Str, '[$1]', Ins);
fid = fopen(FileName, 'w');
if fid == -1, error('Cannot open file %s', FileName); end
fwrite(fid, Str, 'char');
fclose(fid);

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by