using cumsum for a vector

조회 수: 5 (최근 30일)
C.G.
C.G. 2021년 8월 18일
답변: Cris LaPierre 2021년 8월 18일
I have a variable GT2, which is a 1x900 double.
I am trying to do a cumulative sum, where for each cell it does a cumulative sum up to that point, dives this by how many numbers has been summed, and then take the square root.
The current code I have for this is below. When I run this code, it creates a 900x900 double. All I want it to do is do that calculation for each cell so I end up with the same number of values (900) as in GT2. Can anybody help?
flucc = sqrt(cumsum(GT2)./time);

답변 (1개)

Cris LaPierre
Cris LaPierre 2021년 8월 18일
Check your dimensaion. Your cumsum will be a 1xn vector. I suspect time must be an nx1. When you perform the division, implicit expansion will turn this into an nxn. The fix would be to transpose time.
% (1xn)./(1xn) = (1xn)
a = cumsum(1:4)./ones(1,4)
a = 1×4
1 3 6 10
% (1xn)./(nx1) = (nxn)
b = cumsum(1:4)./ones(4,1)
b = 4×4
1 3 6 10 1 3 6 10 1 3 6 10 1 3 6 10

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by