Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

can change the name of txt. file not manually

Asked by huda nawaf on 6 Apr 2013

hi,

I have to run the following code sevral times, each time I have to change the name of files , I have to read 2 files and write one file. If I change the name of files manually , it takes long time . Are there a way by which can change the name not manually . i.e can do that x=2; in this case I change just x each running

f1=dlmread('d:\matlab\r2011a\bin\new_movielens1\netflix\sequences\part1_x.txt');
f4=dlmread('d:\matlab\r2011a\bin\new_movielens1\netflix\sequences\intersect_x.txt');
[p o]=size(f1);k=1;
for i=1:length(f4)
    seq1(i,:)=f1(f4(i),:);
seq2(i,:)=f2(f4(i),:);
seq3(i,:)=f3(f4(i),:);
end
  dlmwrite('d:\matlab\r2011a\bin\new_movielens1\netflix\sequences\com_eval_x.txt',seq3);

thanks in advance

0 Comments

huda nawaf

Tags

Products

No products are associated with this question.

1 Answer

Answer by Ahmed A. Selman on 6 Apr 2013

If your filenames are part1_1.txt, part1_2.txt, part1_3.txt.. etc.,

and intersect_1.txt, intersect_2.txt.. etc.,

and want to write in files as com_eval_1.txt, com_eval_2.txt..etc., respectively,

use the following method:

name1='d:\matlab\r2011a\bin\new_movielens1\netflix\sequences\part1_';
name2='d:\matlab\r2011a\bin\new_movielens1\netflix\sequences\intersect_'; 
nameout='d:\matlab\r2011a\bin\new_movielens1\netflix\sequences\com_eval_';
ext='.txt';
   n=... ;% number of files
   for x=1:n
    F1_name=[name1,num2str(x),ext];
    F4_name=[name2,num2str(x),ext];
    OutName=[nameout,num2str(x),ext];
    f1=dlmread(F1_name);
    f4=dlmread(F4_name);
    [p o]=size(f1);k=1;
    for i=1:length(f4)
        seq1(i,:)=f1(f4(i),:);
        seq2(i,:)=f2(f4(i),:);
        seq3(i,:)=f3(f4(i),:);
     end
    dlmwrite(OutName,seq3);
  end 

1 Comment

huda nawaf on 6 Apr 2013

Many thanks , I will try that

Ahmed A. Selman

Contact us