# how to shift an array value upward ?

2 Ansichten (letzte 30 Tage)
preet am 2 Apr. 2013
a=[10,14,5,6,7,19]
in this array need to build an array a[] again but the value should not be less than or equal to 15 i need it
a=[24,18,19]
when i shift the value after adding my value which i have already added remain in the array like this
in 1st loop i have result lke this
a=[24,5,6,7,19,19]
how to get the right result with shifting
##### 4 Kommentare2 ältere Kommentare anzeigen2 ältere Kommentare ausblenden
Azzi Abdelmalek am 2 Apr. 2013
you added a value to what?
preet am 2 Apr. 2013
i m adding value with array itself if the current value of array is less or equal to 15.

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Mahdi am 2 Apr. 2013
Just use
a=a(1:end-1)
to remove the last value.
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Weitere Antworten (1)

Jan am 2 Apr. 2013
a = [10, 14, 5, 6, 7, 19];
r = zeros(size(a)); % Pre-allocate maximal length
ri = 0;
q = 0;
for k = 1:length(a)
q = q + a(k); % Accumulate values of "a"
if q >= 15 % Flush accumulated value:
ri = ri + 1;
r(ri) = q;
q = 0;
end
end
r = r(1:ri); % Crop unused values
##### 2 KommentareKeine anzeigenKeine ausblenden
preet am 2 Apr. 2013
simon i want to a[ ] array again not r [].
Jan am 2 Apr. 2013
Bearbeitet: Jan am 2 Apr. 2013
@kpreet: Is this a serious question? What about adding this line at the end:
a = r;
Or you can do it "inplace", but the modifications are such tiny (changing all "r" to "a" and "ri" to "ai"), that I'd actually assume, that you could solve this by your own:
a = [10, 14, 5, 6, 7, 19];
ai = 0;
q = 0;
for k = 1:length(a)
q = q + a(k); % Accumulate values of "a"
if q >= 15 % Flush accumulated value:
ai = ai + 1;
a(ai) = q;
q = 0;
end
end
a = a(1:ai); % Crop unused values
It would be a kind idea to explain, if at least the values of "r" match your expectations.

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Creating and Concatenating Matrices 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