My line plot doens't work according to plot([x1 x2], [y1,y2])

I've been staring at it for a while now, but i want to make horizontal, vertical and both diagonal elements in my window,
Elem is the connection matrix, providing information about what nodes to couple. Then XY_plot is are respectively the x-value of node 1, the x-value of node 2, the y-value of node 1 and the y-value of node 2.
XY_plot = zeros(length(Elem),4);
for i = 1:length(Elem)
node_1 = Elem(i,1);
node_2 = Elem(i,2);
XY_1 = nodes(node_1,:);
XY_2 = nodes(node_2,:);
XY_plot(i,:) = [XY_1(1) XY_2(1) XY_1(2) XY_2(2)];
end
X_val = [XY_plot(:,1) XY_plot(:,2)];
Y_val = [XY_plot(:,3) XY_plot(:,4)];
%
clf, figure(1), subplot(1,2,1), hold on,
plot(X_val,Y_val,'k-')
plot(xpos,ypos,'o','MarkerFaceColor', 'y')
hold off
But this doesn't work, however the plot(X_val, Y_val) satisfies the plot([x1 x2] , [y1 y2]). Does anyone see why it doesn't work?
I attached the Elem and nodes files.

 Accepted Answer

The best thing to do first is to map out the indices. From there, you will be able to see what groups of data need to be plotted together to created the lines you want. I would use multiple plot commands to achieve this rather than a single command.

4 Comments

I'm assuming this is what your plot should look like?
One other tip, then. Technically your Elem matrix could contain anything. Don't make any assumptions. Plot the connections one at a time, and it will work for any node structure provided.
You are right, mapping out the indices is what I tried.
That´s indeed the right form, what code did you use for that? One at the time sounds time-consuming and inefficient. Shouldn't it work as I tried as well?
Hold on, your code works with a very minor adjustment.
MATLAB assumes series exist in columns. You are passing in a 342 x 2 for X and Y, so it is plotting two lines, each with 342 points (columns 1 and 2). If you instead give it a 2 x 342 it will plot 342 lines with 2 points each - your node connections.
Is that enough for you to figure out how to modify your plot command?
Ah super, this works indeed, one transpose was missing, thanks a lot for you effort and help!

Sign in to comment.

More Answers (0)

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Products

Release

R2018a

Community Treasure Hunt

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

Start Hunting!