Filter löschen
Filter löschen

set intervals with starts and ends in two arrays

5 Ansichten (letzte 30 Tage)
gabriele fadanelli
gabriele fadanelli am 20 Apr. 2021
Bearbeitet: Matt J am 20 Apr. 2021
I know this should be quite an easy answer, but I cannot find the solution: I have two arrays one marks the beginning of the intervals the other sets the ends. so:
starts = [ 1 20 30 40];
ends = [3 22 34 41];
with the ends always ending before the next start. I would like to get an array intervals which should appear either:
intervals = [1 2 3 20 21 22 30 31 32 33 34 40 41];
or:
intervals = [1 2 3; 20 21 22; 30 31 32 33 34; 40 41];
this sounds so dumb to me that I cannot find a way...anyway, I hope somebody can easily help me thanks.
Also, I need to AVOID FOR CYCLES TO DO IT.
  3 Kommentare
gabriele fadanelli
gabriele fadanelli am 20 Apr. 2021
I don't really know, but the solution to the problem should be given without using a for cycle, it is mandatory, not my fault.
gabriele fadanelli
gabriele fadanelli am 20 Apr. 2021
I thought it was easy to do it with
starts : ends
or
starts':ends'
but none of them works

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Matt J
Matt J am 20 Apr. 2021
Bearbeitet: Matt J am 20 Apr. 2021
Because it's homework, I've left some blanks for you to fill in.
starts = [ 1 20 30 40];
ends = [3 22 34 41];
D=ends-starts;
M=______;
N=numel(starts);
e=(0:M).';
map=______
map = 5×4 logical array
1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0
result=double(map).*e(:)+starts;
result(map).'
ans = 1×13
1 2 3 20 21 22 30 31 32 33 34 40 41

Kategorien

Mehr zu Graphics Performance finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by