how to expand cell array?

2 vues (au cours des 30 derniers jours)
andrew
andrew le 24 Oct 2013
Commenté : Azzi Abdelmalek le 14 Nov 2013
I have a cell array that contains T1-001, T2-001, T1-002, T2-002....T2-058. I am trying to expand the cell array 368x but I would like to keep them together (T1-001 with T2-002 and etc. How do I expand it so that T1-001 and T2-001 expands 368x .
  2 commentaires
dpb
dpb le 24 Oct 2013
I don't follow...how about posting a small example w/ a much smaller expansion factor and showing input/desired output?
andrew
andrew le 24 Oct 2013
for example:
  • T1-001
  • T1-001
  • T1-001
  • T2-001
  • T2-001
  • T2-001
  • T1-002
  • T1-002
  • T1-002
  • T2-002
  • T2-002
  • T2-002etc

Connectez-vous pour commenter.

Réponses (2)

Azzi Abdelmalek
Azzi Abdelmalek le 24 Oct 2013
Modifié(e) : Azzi Abdelmalek le 24 Oct 2013
a=[sprintf('T1-00%d T2-00%d ',[1:9;1:9]) sprintf('T1-0%d T2-0%d ',[10:58;10:58]) ]
out=regexp(a,'\w+\-\w+','match')
out=reshape(repmat(out,368,1),[],1)
%or
a=sprintf('T1-%3d*T2-%3d*',[1:58;1:58])
b=regexp(a,'[^\*]\w+\-\s+\w+','match')
out=strrep(b,' ','0')
out=reshape(repmat(out,368,1),[],1)
  6 commentaires
andrew
andrew le 14 Nov 2013
how do I merge the 2 columns so that it is 'T1-001, T2-001', etc
Azzi Abdelmalek
Azzi Abdelmalek le 14 Nov 2013
a=sprintf('T1-%3d*T2-%3d*',[1:58;1:58])
b=regexp(a,'[^\*]\w+\-\s+\w+','match')
out=strrep(b,' ','0')
out=reshape(out,2,[])'
res=cellfun(@(x,y) [x ', ' y],out(:,1),out(:,2),'un',0)

Connectez-vous pour commenter.


Walter Roberson
Walter Roberson le 12 Nov 2013
idx = ndgrid(1:length(YourArray), ones(1,368));
NewArray = YourArray(idx);

Catégories

En savoir plus sur Data Types dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by