Breaking down a large array

2 Ansichten (letzte 30 Tage)
Senaasa
Senaasa am 23 Mai 2013
Hi,
I have a large array (nx1) of values that I'd like to break up into a new array. This new array takes the first 200 or so values from the original array and then only selects every 3rd value (or even a logarithmic selection) of the original array to construct the new array. I was thinking about doing this with a loop, but I was wondering if matlab had any built-in functions that could do this.
Thanks, Charles

Akzeptierte Antwort

Roger Stafford
Roger Stafford am 23 Mai 2013
For spacing every third element
p = a:3:b;
For logarithmic spacing
p = round(k*a.^(1:n));
for appropriate a, k, and n. Then do this:
new_array = old_array(p);
  4 Kommentare
Cedric
Cedric am 23 Mai 2013
Bearbeitet: Cedric am 23 Mai 2013
What Roger is generating is an array of IDs/positions (that he then uses for indexing operations); you can work with these as you work with any other array; in particular, you can concatenate them, e.g.
p = [1:200, 203:3:1000] ;
or
p = [1:200, 200+3^(1:5)] ;
etc. Experiment with smaller numbers so you can easily visualize p.
Senaasa
Senaasa am 23 Mai 2013
Ok, I've got it now. Thanks a lot guys

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by