2014-06-16 5 views
-3

특정 폭풍 ID로 최소 압력을 찾고 해당 값을 1로 지정하려고합니다. 나는 if 문과 함께 중첩 된 for 루프를 사용해 보았지만 이것이 작동하지 않습니다. 아래는 제 코드입니다. 도와 주실 수 있다면, 좋을 것입니다!변수의 숫자 그룹의 최소값

lifecycle = zeros(285,1);     %// variable lifecycle denotes max storm intensity 

for c = 1:285        %// counter 
    for id = 188:100:1288     %// loop through each storm code(188,288,...1288) 
     if min_press(c) == min(min_press(id)) %// find min pressure of each id 
      lifecycle(c) = 1;     %// assign min a value of 1 
     end 
    end 
end 
+1

'mean_press'란 무엇입니까? [mcve] (http://stackoverflow.com/help/mcve)를 게시하십시오. – kkuilla

+0

min_press = 최소 압력; 이전 코드의 my dataset (ebtrk)에서 정의 된 변수는 다음과 같습니다. min_press = ebtrk (:, 8); % 최소 압력 (hPa) – runnere127

+0

위의 코드는 의미가 없습니다. 당신의 문제 진술에 의하면 당신은 자연히'min_press'가 2D 행렬이라고 가정합니다. 행은'c'에 의해 부분 집합되고''id''에 의해 부분 집합됩니다. 위의 귀하의 의견에 의해,'min_press'는 단지 열 벡터입니다. – rayryeng

답변

1

열 벡터로 표현 최소 압력과 2 차원 행렬이 min_press 변수를 가정 할, 당신이 뭔가를 할 수 있습니다.

A

는 압력이 각 열

[val, row] = min(A) 

val = 

-0.39526 -2.13034 -0.89858 

row = 

3 1 2  

당신에게 최소 값을 줄 것이다 그래서 행렬의 최소값을 복용 columnn별로 열을 기준으로

A= randn(3,3) 

    -0.063413 -2.130337 0.590931 
    0.233517 -0.112800 -0.898581 
    -0.395259 0.303704 2.508438 

min() 작품 값입니다 행렬과 관련된 지표로 변환하십시오. A

ind = sub2ind(size(A),row.', [1:length(row)].') 

ind = 

    3 
    4 
    8 

A

A(ind) = 0 

A = 

    -0.06341 0.00000 0.59093 
    0.23352 -0.11280 0.00000 
    0.00000 0.30370 2.50844