How to get the two outputs from "function"
2 次查看(过去 30 天)
显示 更早的评论
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!
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/153391/image.jpeg)
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 个评论
Mohammad Abouali
2016-1-18
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
采纳的回答
Walter Roberson
2016-1-18
I suspect you are not invoking it correctly. Be sure to use two outputs when you call it:
[n, c] = stat(N, R)
2 个评论
Image Analyst
2016-1-18
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!