我有以下的矩陣在Matlab聲明:Matlab的不遞增我的變量
EmployeeData =
1 20 100000 42 14
2 15 95000 35 14
3 18 70000 28 14
4 10 85000 35 14
5 10 40000 21 12
6 4 45000 14 8
7 3 50000 21 10
8 5 55000 21 14
9 1 25000 14 7
10 2 50000 21 9
42 4 100000 42 10
其中第1列表示ID號,2代表年,3是工資,4是休假日和5生病天。我試圖找到列的最大值(在本例中爲薪金列),並打印出與該值關聯的ID。如果多個員工擁有最大值,則應顯示具有該最大值的所有ID。因此,這裏是如何我天真地實現了一個辦法做到這一點:
>> maxVal = [];
>> j = 1;
>> for i = EmployeeData(:, 3)
if i == max(EmployeeData(:, 3))
maxVal = [maxVal EmployeeData(j, 1)];
end
j = j + 1;
end
但它顯示maxVal
是在我的工作區變量[]
,而不是[1 42]
如我所料。當在for
循環的if
上述調試插入disp(i)
,我得到下面的輸出:
100000
95000
70000
85000
40000
45000
50000
55000
25000
50000
就像我的預期。但是,當我轉的是disp(i)
有disp(j)
,我得到這個對我的輸出:
1
我在做什麼錯?如果這不起作用?
你的for循環只執行一次,我已經完成所有這些值,然後下降到j。 (:,3)不會運行每行的值,而是運行一次的列值。 – 2014-10-07 22:42:19