[討論] 如何輸出矩陣中符合條件的座標?
令f矩陣為下
0 0 0 0 0 1 0 0 0
0 0 0 1 0 0 0 0 1
0 1 0 0 0 0 1 0 0
將f矩陣中,值為1的座標(x,y)標出
例如:(1,6)、(2,4)、(2,9)...
clear all
close all
clc
f=[0 0 0 0 0 1 0 0 0;0 0 0 1 0 0 0 0 1;0 1 0 0 0 0 1 0 0]
for i=1:size(f,1)
for j=1:size(f,2)
if f(i,j)==1
X(i)=i
Y(j)=j
end
end
end
我想得到的結果應該是
x=[1 2 2 ...]
y=[6 4 9 ...]
但我得到的數值為
x=[1 2 3]
y=[0 2 0 4 0 6 7 0 9]
大概知道原因,是i=1的時候
圖像就已經抓到f值是1了
所以x軸的部分就給1
但是y軸的部分根本還沒帶入,就已經符合條件
所以得到的y會有0出現
那我改寫成這樣
clear all
close all
clc
f=[0 0 0 0 0 1 0 0 0;0 0 0 1 0 0 0 0 1;0 1 0 0 0 0 1 0 0]
%設一個 P矩陣儲存(1,1)、(1,2)、(1,3)....去帶入
for i=1:size(f,1)
for j=1:size(f,2)
P=[i j]
if f(P(1),P(2))==1
X(i)=P(1)
Y(j)=P(2)
end
end
end
但結果還是跟原本一樣,沒有辦法正確輸出
後來找到一個指令是[x y]=find(f==1)
得到結果如下
x =
3
2
1
3
2
y =
2
4
6
7
9
也就是得到(3,2) (2,4) (1,6).... 這樣
能夠正確輸出座標了,但還是不服氣
想知道我的寫法到底哪裡不行,要怎麼改
請各位ML大神指導一下,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.19.5.131
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1528003370.A.D44.html
推
06/03 14:16,
6年前
, 1F
06/03 14:16, 1F
→
06/03 14:27,
6年前
, 2F
06/03 14:27, 2F
→
06/03 14:28,
6年前
, 3F
06/03 14:28, 3F
→
06/03 14:30,
6年前
, 4F
06/03 14:30, 4F
→
06/03 15:17,
6年前
, 5F
06/03 15:17, 5F
→
06/03 15:18,
6年前
, 6F
06/03 15:18, 6F
→
06/03 15:21,
6年前
, 7F
06/03 15:21, 7F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章