如何從矩陣中選取最接近或等於K = 0.5的值?我知道我可以通過取絕對值和最小值從矩陣中獲得值。但是,我希望能夠遍歷矩陣,檢查第一個元素是否相等K,如果相等,則取其索引並中斷。但是,如果第一個元素不等於K,循環直到找到等於K的值。繼續直到所有等於K的值都耗盡。任何人都可以指引我走向正確的方向嗎?提前致謝。如何計算最接近或等於0.5的值?
這裏是我的代碼:(我沒有足夠的積分,使這個評論,而不是一個答案)
data = rand(10,2);k =0.5;
indr = find(data(:,1));
cNum = data(1,1);
if cNum < k
old_distance = abs(k - cNum);
else
old_distance = abs(cNum - k);
end
Xdata = data(2:end,:);
indeX = find(Xdata(:,1));
for i = 1:size(Xdata,1)
if Xdata(i,1) < k
min_Val = abs(k-Xdata(i,1));
new_distance = min(min_Val);
else
min_Val = abs(Xdata(i,1) -k);
new_distance = min(min_Val);
end
if (new_distance < old_distance)
old_distance = new_distance;
cNum = Xdata(i,1);
end
end
cNum_indeX = indr(indeXm);
Y = cNum;
X = indr(cNum_indeX);'
是的,我有[值,指數=分鐘(X)在我的代碼。我想遍歷整個矩陣,最接近0.5的值。 – user587646 2011-03-13 07:58:53
其實,下一個解決方案比我的要好,但我仍然不明白你想要做什麼以及爲什麼這些解決方案是不夠的。他們認爲符合你所述的標準。 – Ricky 2011-03-13 08:06:03
@ user587646:R.M.的解決方案就是您要找的。邏輯索引比循環快得多。 – 2011-03-13 14:57:15