How do I combine matrices in a specific order?
    3 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
for j=1:5
k=num2str(j); extension='.asc';
filename=strcat('Image',k,extension)
[Profiles]=readProfiles(filename); % Read profiles
ProfilesALL(:,j)=Profiles; 
end
ProfISO_2_5=(ProfilesALL(:,1)+ProfilesALL(:,2))/2;
ProfISO_7_5=(ProfilesALL(:,2)+ProfilesALL(:,3))/2;
ProfISO_15=(ProfilesALL(:,3)+ProfilesALL(:,4))/2;
ProfISO_25=(ProfilesALL(:,4)+ProfilesALL(:,5))/2;
How do I occupy a new matrix, A, to be in this order:
       A(:,1)=ProfilesALL(:,1);
       A(:,2)=ProfISO_2_5;
       A(:,3)=ProfilesALL:,2);
       A(:,4)=ProfISO_7_5;
       A(:,5)=ProfilesALL(:,3);
       A(:,6)=ProfISO_15;
       A(:,7)=ProfilesALL(:,4);
       A(:,8)=ProfISO_25;
       A(:,9)=ProfilesALL(:,5);
3 Kommentare
Akzeptierte Antwort
  Jan
      
      
 am 4 Apr. 2013
        
      Bearbeitet: Jan
      
      
 am 4 Apr. 2013
  
      This procedure is actually a linear interpolation:
A = interp1(1:5, transpose(ProfilesALL), 1:0.5:5);
I cannot test this currently, such that I'm not sure about the transpose().
This is a leaner method to create the file name:
filename = sprintf('Image%d.asc', k);
Letting an array gorw iteratively wastes time, but I do not think that this can be measured for the small number of 5 loops. Nevertheless, I suggest to pre-allocate in general. Either allocate ProfilesALL at once by zeros(), when you know the size at the beginning. Or perform an implicit allocation by inserting the last element at first:
for j = 5:-1:1
  ...
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Logical finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


