How to find the element in on boundary or interior?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Anusha
le 7 Avr 2014
Réponse apportée : Jos (10584)
le 7 Avr 2014
a=[3 4 5;6 1 2]
I want to know if the element 2 is on boundary or interior?
how will i check?
2 commentaires
Image Analyst
le 7 Avr 2014
When a is a 2 by 3 matrix:
a =
3 4 5
6 1 2
Exactly which pixels do you consider to be interior and which to be exterior/boundary? The all look like boundary pixels to me.
Réponse acceptée
Jos (10584)
le 7 Avr 2014
tf = false(size(a))
tf(2:end-1,2:end-1) = true
a(tf) % elements in interior
a(~tf) % elements on boundary
0 commentaires
Plus de réponses (2)
Image Analyst
le 7 Avr 2014
What is element 2? The lower right element with the value of 2? Or row=2, column = 1 which is how the column major order of MATLAB defines the second element? Can't you just look at the row and column and see if it's equal to 1 or the total number of rows or columns in the matrix?
0 commentaires
Alberto
le 7 Avr 2014
Modifié(e) : Alberto
le 7 Avr 2014
If you suppose there is only one value 2 in the matrix, this code may be useful:
a=[3 4 5;6 2 1; 1 6 9] % interior value % a=[3 4 5;6 1 2; 1 6 9] % edge value [nrow ncol]= size(a) % Obtain dimensions
% find(a==2) extract linear index, so you better convert to subindices [I,J] = ind2sub(size(a),find(a==2))
% and checking if I==1 J==1 I==nrow J==ncol display('In the edge') else display('interior value')
end
% If there are other 2 values you should create a for across the I and J vectors.
a=[3 4 5;6 2 1; 2 6 9];
[nrow ncol]= size(a); [I,J] = ind2sub(size(a),find(a==2));
for k=1:length(I) if I(k)==1 J(k)==1 I(k)==nrow J(k)==ncol display(['In the edge ( ', num2str(I(k)), ', ', num2str(J(k)), ' )'])
else display(['Interior value ( ', num2str(I(k)), ', ', num2str(J(k)), ' )'])
end
end
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!