how to store the conditional loop data
    조회 수: 8 (최근 30일)
  
       이전 댓글 표시
    
sir/ madam please correct me.
ut=rand(15,1);
uy=([0.84;0.384;0.784]);
eval (['U_y','=[u_y;u_y;u_y;u_y;u_y]']);
for n=1:15
    if ut(n,1)<=U_y(n,1)
        ut(n,1)=ut(n,1);
    else
        ut(n,1)=0;
    end
    utt(:,1)=ut(n,1);    %% i want to store the ut as a utt in a column
end
댓글 수: 4
  Star Strider
      
      
 2022년 4월 29일
				My code tests each element of ‘ut’ against ‘U_y’ and sets it to zero if the condition is satisfied.  
What result do you want?  
  Jan
      
      
 2022년 4월 29일
				@Chaudhary P Patel: The line ut(n,1)=ut(n,1) replaced the n.th element of the vector ut by the n.th element of the vector ut. This is a waste of time only.
An option to avoid this (see others in the already provided answers):
for n = 1:15
    if ut(n) <= U_y(n)
        utt(n) = ut(n);
    else
        utt(n) = 0;
    end
end
Or with a proper pre-allocation, to avoid the time-consuming growing of arrays:
utt = zero(15, 1);  % The default value is 0 now
for n = 1:15
    if ut(n) <= U_y(n)
        utt(n) = ut(n);
    end
end
채택된 답변
  Star Strider
      
      
 2022년 4월 29일
        If I understand the code correctly, it can be simply stated as: 
ut=rand(15,1);
u_y=([0.84;0.384;0.784]);
U_y = [u_y;u_y;u_y;u_y;u_y];                            % Create Column Vector
utt = ut;                                               % Copy 'ut' to 'utt'
utt(ut>U_y) = 0                                         % Set Appropriate Elements To Zero
No loops!  
.
댓글 수: 0
추가 답변 (1개)
  Jan
      
      
 2022년 4월 29일
        Your cleaned code:
ut  = rand(15, 1);
uy  = [0.84; 0.384; 0.784];
U_y = repmat(uy, 5, 1);
for n = 1:15
    if ut(n) > U_y(n)
        ut(n) = 0;
    end
    utt(n) = ut(n);
    %   ^ insert an index here
end
Remember, that X(k,1) can be written as X(k), which looks a little bit cleaner.
Instead of the loop, you can write:
utt = ut .* (ut <= U_y);
The expression in the parentheses is a vector of 1s and 0s and the elementwise multiplication set the wanted elements to 0.
댓글 수: 0
참고 항목
카테고리
				Help Center 및 File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


