Effacer les filtres
Effacer les filtres

Extracting and formatting data

1 vue (au cours des 30 derniers jours)
Doina Gumeniuc
Doina Gumeniuc le 19 Nov 2017
Commenté : Doina Gumeniuc le 26 Nov 2017
Hi all,I am trying to do the following: Let's say I have two matrices
A =
2
2
1
3
B =
0.1000
0.0030
0.0500
0.0200
0.4000
0.0600
0.0900
1.0000
Every value from matrix A represents the number of values I would like to extract from matrix B. For example: if the first value in matrix A is 2, then I would like to extract first two values from B in a row [0.1,0.003] and so on.
  4 commentaires
Rik
Rik le 20 Nov 2017
And how did you want to save those different parts?
Doina Gumeniuc
Doina Gumeniuc le 21 Nov 2017
Hi Rik! I will fprint them into a vtk input file. In B I have numerous columns so I would like to take it column by column using the same values from A

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 20 Nov 2017
B_cell = mat2cell(B, A, size(B,2));
  5 commentaires
Walter Roberson
Walter Roberson le 26 Nov 2017
B_cell = mat2cell(B, A, ones(1,size(B,2)));
Doina Gumeniuc
Doina Gumeniuc le 26 Nov 2017
wow..Great, thank you a lot!

Connectez-vous pour commenter.

Plus de réponses (1)

Rik
Rik le 19 Nov 2017
A solution that might not scale well, is to convert A to a cell (with num2cell), use cellfun with @(x) 1:x, make sure it is a row array, convert back to a normal vector (with cell2mat) and use that as the index to B (so C=B(index_vector);)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by