how to shift an array value upward ?
古いコメントを表示
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 件のコメント
Azzi Abdelmalek
2013 年 4 月 2 日
This is not clear
preet
2013 年 4 月 2 日
Azzi Abdelmalek
2013 年 4 月 2 日
you added a value to what?
preet
2013 年 4 月 2 日
採用された回答
その他の回答 (1 件)
Jan
2013 年 4 月 2 日
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 件のコメント
preet
2013 年 4 月 2 日
@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.
カテゴリ
ヘルプ センター および File Exchange で Image Arithmetic についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!