Plotting array filtered by column?
1 回表示 (過去 30 日間)
古いコメントを表示
How would I go about graphing columns filtered by specific results in a third column?
The following table as an example, how would I plot only the second and third column entries that are 1.0000 in the first?
A =
1.0000 1.0000 5.5000
1.0000 2.0000 1.2000
0 3.0000 6.4000
1.0000 4.0000 3.7000
0 5.0000 3.6000
0 6.0000 9.6000
1 件のコメント
Dyuman Joshi
2023 年 7 月 19 日
編集済み: Dyuman Joshi
2023 年 7 月 19 日
Try comparing with the first column values with 1.000, ideally with a tolerance, and use logical indexing to get the corresponding values in 2nd and 3rd column.
採用された回答
Jon
2023 年 7 月 19 日
% Define example points
A = [
1.0000 1.0000 5.5000
1.0000 2.0000 1.2000
0 3.0000 6.4000
1.0000 4.0000 3.7000
0 5.0000 3.6000
0 6.0000 9.6000];
% Define tolerance for finding rows to plot
tol = 1e-6;
% plot rows meeting critiera that element in first column is a 1
idl = ismembertol(A(:,1),1,tol); % or alternatively idl = abs(A(:,1)-1)<=tol
plot(A(idl,2),A(idl,3))
8 件のコメント
Jon
2023 年 8 月 2 日
Yes, that's cleaner and connects back to the beginning of the the thread where the match was approximate and we had to use ismembertol.
% Define example points
A = [
4 1.0000 5.5000
1 2.0000 1.2000
2 3.0000 6.4000
3 4.0000 3.7000
0 5.0000 3.6000
2 6.0000 9.6000];
% Plot rows meeting critiera that element in first column is a 1 or a 2
idl = ismember(A(:,1),[1,2])
plot(A(idl,2),A(idl,3),'o-')
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Data Preprocessing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!