Effacer les filtres
Effacer les filtres

Appending one cell array to non-zero cells of another

2 vues (au cours des 30 derniers jours)
Eli Dim
Eli Dim le 2 Juil 2015
Commenté : Eli Dim le 2 Juil 2015
I have a cell array FINAL_OUTPUT < 50x1 cell > and another one called indexing as shown in the attached file. How can I append the indexing column inside the non-empty cells of FINAL_OUTPUT? In the end, I would like to have FINAL_OUTPUT{1,1} having size 3x3 FINAL_OUTPUT{2,1} having size < 1x3 > etc...and the empty cells of FINAL_OUTPUT should remain empty.
  3 commentaires
Eli Dim
Eli Dim le 2 Juil 2015
Modifié(e) : Eli Dim le 2 Juil 2015
Here is a sample set. Thank you for your assistance. The idea is that the rows of indexing should be appended to the non-zero rows of FINAL_OUTPUT
Eli Dim
Eli Dim le 2 Juil 2015
these are the indices of FINAL_OUTPUT to which each row of indexing corresponds.

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 2 Juil 2015
Modifié(e) : Stephen23 le 2 Juil 2015
>> out = cellfun(@(F,I)[F,num2cell(I)], FINAL_OUTPUT(check_not_empty), indexing, 'UniformOutput',false);
>> out{1}
ans =
'A' [ 110] [1]
'B' [ 110] [2]
'C' [2.8422e-14] [3]
>> out{2}
ans =
'A' [56.5000] [1]
>> out{3}
ans =
'A' [55] [1]
'B' [55] [2]
'C' [55] [3]
And of course to allocate back into the original cell array, just use indexing:
FINAL_OUTPUT(check_not_empty) = out;

Plus de réponses (1)

Azzi Abdelmalek
Azzi Abdelmalek le 2 Juil 2015
out=cellfun(@(x,y) [x y],FINAL_OUTPU,indexing,'un',0)
  1 commentaire
Eli Dim
Eli Dim le 2 Juil 2015
Thank you for your answer, but this does not work since the arguments FINAL_OUTPUT and indexing are not of the same size.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by