# Determine the coordinates of the nodes forming the outermost circle

8 views (last 30 days)

Show older comments

Hi! How can I extract only the coordinates of the nodes forming the outermost circle? The nodes are located on radius R = 4!

nodes = importdata("nodes.txt");

figure

plot3(nodes(:,1),nodes(:,2),nodes(:,3),'b.','Markersize',15);

axis equal

xlabel('x')

ylabel('y')

zlabel('z')

##### 2 Comments

Dyuman Joshi
on 17 Jan 2024

### Accepted Answer

Hassaan
on 17 Jan 2024

% Load the nodes data

nodes = importdata('nodes.mat');

% Define the desired radius

R = 4;

% Calculate the distance of each node from the origin in the x-y plane

distances = sqrt(nodes(:,1).^2 + nodes(:,2).^2);

% Find the indices of nodes that are close to the radius R

% You may need to adjust the tolerance depending on the precision of your data

tolerance = 0.1; % Tolerance for the radius match

outermost_indices = find(abs(distances - R) < tolerance);

% Extract the coordinates of the outermost nodes

outermost_nodes = nodes(outermost_indices, :);

% Plot all nodes

figure;

plot3(nodes(:,1), nodes(:,2), nodes(:,3), 'b.', 'Markersize', 15);

hold on;

% Highlight the outermost nodes in red

plot3(outermost_nodes(:,1), outermost_nodes(:,2), outermost_nodes(:,3), 'r.', 'Markersize', 15);

% Set axis properties

axis equal;

xlabel('x');

ylabel('y');

zlabel('z');

% Print the coordinates of the outermost nodes

disp('Coordinates of the nodes forming the outermost circle:');

disp(outermost_nodes);

% If you want to print coordinates with a label:

for i = 1:size(outermost_nodes, 1)

fprintf('Node %d: (x, y, z) = (%.4f, %.4f, %.4f)\n', i, outermost_nodes(i, 1), outermost_nodes(i, 2), outermost_nodes(i, 3));

end

-----------------------------------------------------------------------------------------------------------------------------------------------------

If you find the solution helpful and it resolves your issue, it would be greatly appreciated if you could accept the answer. Also, leaving an upvote and a comment are also wonderful ways to provide feedback.

Professional Interests

- Technical Services and Consulting
- Embedded Systems | Firmware Developement | Simulations
- Electrical and Electronics Engineering

It's important to note that the advice and code are based on limited information and meant for educational purposes. Users should verify and adapt the code to their specific needs, ensuring compatibility and adherence to ethical standards.

Feel free to contact me.

##### 0 Comments

### More Answers (2)

Image Analyst
on 17 Jan 2024

##### 1 Comment

Alan Stevens
on 17 Jan 2024

Here's an alternative way:

nodes = importdata("nodes.mat");

figure

plot3(nodes(:,1),nodes(:,2),nodes(:,3),'b.','Markersize',15);

axis equal

xlabel('x')

ylabel('y')

zlabel('z')

r = 4;

theta = 0:2*pi/20:2*pi;

for i = 1:numel(theta)

x(i) = r*cos(theta(i));

y(i) = r*sin(theta(i));

z(i) = 3;

end

hold on

plot3(x,y,z,'ro','markersize',15)

view(0,90)

##### 0 Comments

### See Also

### Categories

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!