How to concatenate array with delimeter?
    1 Ansicht (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Laurensius Christian Danuwinata
 am 22 Dez. 2015
  
    
    
    
    
    Kommentiert: Laurensius Christian Danuwinata
 am 23 Dez. 2015
            a1 = [0 32]; 
c1 = ([31 63]);
d1 = unique([a1 c1]);
first = ['[' num2str(d1(1)) ':' num2str(d1(2)) ']'];
second =['[' num2str(d1(3)) ':' num2str(d1(4)) ']'];
preresult= [ first second];
result = ['{' preresult '}'];
%result = {[0:31][32:63]}
How can I make this code worked more generally, for any values of a1 and c1? I've tried with this :
    newArray =[];
  for i=1:length(a1)
  newArray(length(newArray)+1)= [ '[' num2str(a1(i)) ':' num2str(c1(i)) ']' ]
  end
 But it said Subscripted assignment dimension mismatch. Can someone help me maybe? :(
1 Kommentar
  jgg
      
 am 22 Dez. 2015
				Are you sure this is doing what you want it to? The matrix [0 32] is not the same as the matrix [0:32]?
Akzeptierte Antwort
  Guillaume
      
      
 am 22 Dez. 2015
        The bit pattern is not made up of strings, you're barking up the wrong tree. It is a cell array of double vectors and it's simply:
result = arrayfun(@(s, e) s:e, a1, c1, 'UniformOutput', false);
Or if arrayfun is too dauting for you, with a loop:
result = cell(size(a1));
for iter = 1:numel(a1);
   result{iter} = a1(iter) : c1(iter);
end
1 Kommentar
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Data Types 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!

