I have some problem with reading data in loop
cx_sum(Q) and cy_sum(Q) are not working in loop.
cx_sum and cy_sum have value 1x1622.
for Q = 1:1621
CY_sum99 = mean(cy_sum(Q),'omitnan')
CX_sum99 = mean(cx_sum(Q),'omitnan')
end
So can you solve this problem? Thank you

 采纳的回答

But they are .. just that cy_sum(Q) is the single element of the array on each pass and the mean of a single number is the number and so the last computed value at the end of the loop is the last element of each array (if not NaN) .
You're looking for simply writing
CY_mn=mean(cy_sum,'omitnan');
CX_mn=mean(cx_sum,'omitnan');
probably...but that's guessing.

3 个评论

Mingde
Mingde 2022-7-20
编辑:Mingde 2022-7-20
thank you for you answer. if i want to change loop Q= 1:270. So are cy_sum and cx_sum working until 270? because I think if we don't need to put loop from start to end, it will show the whole data in there.
for Q = 1:270
CY_sum99 = mean(cy_sum,'omitnan')
CX_sum99 = mean(cx_sum,'omitnan')
end
I see cy_sum and cx_sum are working from 1:1622
so I want it to work in specific (start:end)
No, you don't want the loop still -- you want to sub-reference the portion of the array desired.
That would be
Nlower=1; % programming practice -- don't bury "magic" numbers in code;
Nupper=270; % use variables that can change
CX_mn_UL=mean(cx_sum(Nlower:Nupper),'omintnan');
It doesn't matter over what elements you loop, the above computes the same result as the mean 270 times since you reference the full variable inside the loop.
I strongly recommend spending time reading the "Getting Started" tutorial section in the local documentation on MATLAB syntax and referencing arrays, etc., ...
Thank you so much. I appreciate it your answer.

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by