conditional adding of elements to an array
显示 更早的评论
i have the following array: [2 2 4 6 7 16 20 29 48 81 130 163 235 308 414 496 535 521 509 465 355 275 198 120 72 31 16 8 4 2]
what i want to do is if the element of the array is greater than 50, then i replace the element by the the 50 then by the remainder so for example after converting the 10th element the array becomes [2 2 4 6 7 16 20 29 48 50 31 130 163 235 308 414 496 535 521 509 465 355 275 198 120 72 31 16 8 4 2]
how wcan this be done for any array ?
2 个评论
James Tursa
2018-3-17
Do this for only the first occurrence, or for all elements? What if the remainder is still greater than 50? Could an element expand into more than two elements?
Ahmad Beydoun
2018-3-17
采纳的回答
更多回答(1 个)
Rik
2018-3-17
Not the most beautiful code I've ever written, but this should do what you want. I tested it as well with [0 50].
a=[2 2 4 6 7 16 20 29 48 81 130 163 235 308 414 496 535 521 509 465 355 275 198 120 72 31 16 8 4 2];
a=num2cell(a);
fun=@(x) [repmat(50,1,floor(x/50)) repmat(mod(x,50),1,mod(x,50)~=0)];
result=cellfun(fun,a,'UniformOutput',false);
result=cell2mat(result);
类别
在 帮助中心 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!