範囲を指定して最頻値
    조회 수: 16 (최근 30일)
  
       이전 댓글 표시
    
例えばA=[1,1,1,1,5,  2,2,2,2,3,  4,4,1]といった13×1の変数があるとします。
これらを上から順に5行毎に分けその最頻値を取りたいです。今回の場合はB=[1, 2, 4]といった感じで、最後は割り切れないがそのまま出力したいと思っています。
mode関数がよいようなのですが、以下のようにプログラムして上手くいきません。ご教授いただけると幸いです。よろしくお願いいたします。
for i = 1:length(A):5
    k=i+4;
    l=mode(A(i:k,:),2);
end
댓글 수: 0
채택된 답변
  Hernia Baby
      
 2022년 9월 7일
        댓글 수: 6
  Hernia Baby
      
 2022년 9월 7일
				すみません、一部間違えていました…
以下のコードになります
clear,clc;
A = readmatrix('saihin.csv');
Y = length(A)/50;
Y = fix(Y);
Y = Y + 1;
X = zeros(Y,1);
m = 1;
for ii = 1:50:length(A)
    k = ii + 49;
    if k > length(A)
        X(m,1)=mode(A(ii:length(A),1));
    else
        X(m,1)=mode(A(ii:k,1));
    end
    m = m + 1;
end
X'
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 整数論에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
