How to get the two outputs from "function"

9 views (last 30 days)
I have the below code which needs to provide both nodes and connectivity matrices. The formulation and for-loop is all correct I believe but I'm only getting the nodes matrix but not the connectivity matrix. If I remove the semicolon after connectivity(:,i) = [p,q], I'm getting matrices for all the iterations. All I need is the output to have final nodes and connectivity matrices like in the image attached. I'm using a N value of 6 and R value of 1. It's easy I believe but I'm not thinking straight. Help much appreciated. Thank you!
function [nodes, connectivity] = stat(N, R)
nodes = zeros(2,N);
connectivity = zeros(2,N);
for i=1:N
a = (360/N)*(pi/180)*(i-1);
x = R*cos(a);
y = R*sin(a);
nodes(:,i) = [x;y];
p = i;
q = i+1;
if q>N
q=1;
end
connectivity(:,i) = [p;q];
end
end
  2 Comments
Mohammad Abouali
Mohammad Abouali on 18 Jan 2016
On my system your function gives back both nodes and connectivity:
[nodes, connectivity] = stat(10, pi)
nodes =
3.1416 2.5416 0.9708 -0.9708 -2.5416 -3.1416 -2.5416 -0.9708 0.9708 2.5416
0 1.8466 2.9878 2.9878 1.8466 0.0000 -1.8466 -2.9878 -2.9878 -1.8466
connectivity =
1 2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 8 9 10 1
PVR
PVR on 18 Jan 2016
I only got nodes as output, that too it doesn't say nodes, it says "ans". Can you help me if there's some change in settings to get the output like yours.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 18 Jan 2016
I suspect you are not invoking it correctly. Be sure to use two outputs when you call it:
[n, c] = stat(N, R)
  2 Comments
Image Analyst
Image Analyst on 18 Jan 2016
Huh? What "end"? In your main program stat calls stat() of course. You're probably doing
stat(N, R)
and not
[n, c] = stat(N, R)
like Walter said.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!