Filter löschen
Filter löschen

Extracting and formatting data

1 Ansicht (letzte 30 Tage)
Doina Gumeniuc
Doina Gumeniuc am 19 Nov. 2017
Kommentiert: Doina Gumeniuc am 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 Kommentare
Rik
Rik am 20 Nov. 2017
And how did you want to save those different parts?
Doina Gumeniuc
Doina Gumeniuc am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Rik
Rik am 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);)

Community Treasure Hunt

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

Start Hunting!

Translated by