How to concatenate array with delimeter?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Laurensius Christian Danuwinata
el 22 de Dic. de 2015
Comentada: Laurensius Christian Danuwinata
el 23 de Dic. de 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 comentario
jgg
el 22 de Dic. de 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]?
Respuesta aceptada
Guillaume
el 22 de Dic. de 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 comentario
Más respuestas (0)
Ver también
Categorías
Más información sobre Data Types en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!