4
我有一個約6000個項目的散點圖。如何從matlab中的大散點圖中找到索引?
x = rand(1,6000);
y = rand(1,6000);
scatter(x,y)
有沒有辦法找到使用GUI的給定點的索引? (我們放大到數據,並希望找到那個給人們帶來了一點具體的指標)
我有一個約6000個項目的散點圖。如何從matlab中的大散點圖中找到索引?
x = rand(1,6000);
y = rand(1,6000);
scatter(x,y)
有沒有辦法找到使用GUI的給定點的索引? (我們放大到數據,並希望找到那個給人們帶來了一點具體的指標)
這裏是一個非常簡單的解決方案:
打開一個陰謀>數據光標>編輯短信更新功能
設置文本更新功能:
function output_txt = myFunction(obj,event_obj)
% Display the position of the data cursor
% obj Currently not used (empty)
% event_obj Handle to event object
% output_txt Data cursor text string (string or cell array of strings).
pos = get(event_obj,'Position');
% Import x and y
x = get(get(event_obj,'Target'),'XData');
y = get(get(event_obj,'Target'),'YData');
% Find index
index_x = find(x == pos(1));
index_y = find(y == pos(2));
index = intersect(index_x,index_y);
% Set output text
output_txt = {['X: ',num2str(pos(1),4)], ...
['Y: ',num2str(pos(2),4)], ...
['Index: ', num2str(index)]};
% If there is a Z-coordinate in the position, display it as well
if length(pos) > 2
output_txt{end+1} = ['Z: ',num2str(pos(3),4)];
end
結果:
僅供參考,如果你想以編程方式做到這一點,那麼這裏就可以了here的好文章。
可以使用X,Y位置搜索點:
%export the cursor to the workspace
possibleXpositions = find(x == cursor_info.Position(1));
possibleYPositions = find(y == cursor_info.Position(2));
position = intersect(possibleXpositions, possibleYPositions);
位置將持有指數您選擇的隨機數字。
作爲一個班輪:
position = intersect(find(x == cursor_info.Position(1)), find(y == cursor_info.Position(2)));
如果它在該x值處隨機化了多個座標,該怎麼辦?不太可能,但可能會發生。 – 2013-03-18 23:52:19
@Ben我想過這個,你也可以使用y座標數據......我會更新它。發生這種情況的可能性「幾乎可以肯定」爲零。 – Justin 2013-03-18 23:55:23
注意:如果使用{x = get(get(event_obj,'Target'),'XData');}而不是上面的行,則可以在任何散點圖上進行此操作,而不僅僅是使用x /上面的y基本命名空間約定。 – John 2013-03-20 20:46:46