Effacer les filtres
Effacer les filtres

set intervals with starts and ends in two arrays

5 vues (au cours des 30 derniers jours)
gabriele fadanelli
gabriele fadanelli le 20 Avr 2021
Modifié(e) : Matt J le 20 Avr 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 commentaires
gabriele fadanelli
gabriele fadanelli le 20 Avr 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 le 20 Avr 2021
I thought it was easy to do it with
starts : ends
or
starts':ends'
but none of them works

Connectez-vous pour commenter.

Réponses (1)

Matt J
Matt J le 20 Avr 2021
Modifié(e) : Matt J le 20 Avr 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

Catégories

En savoir plus sur Graphics Performance 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