- in your function you return the values of x,y
- function [x, y, dt] = simple_polygon(numSides,numpoly)
- the array values are stored in valueOfX,valueOfY
- So you need to change your function like-----> function [valueOfX, valueOfY, dt] = simple_polygon(numSides,numpoly)
How to store the array in a for loop?
1 view (last 30 days)
Show older comments
I have written a code as mentioned below, its a for loop in which i want to store the array of each polygon, but im only able to save the last polygon values.
function [x, y, dt] = simple_polygon(numSides,numpoly)
if numSides < 3
x = [];
y = [];
dt = DelaunayTri();
return
end
oldState = warning('off', 'MATLAB:TriRep:PtsNotInTriWarnId');
valueOfX = zeros(100,100);
valueOfY = zeros(100,100);
figure
for i = 1 : numpoly
fudge = ceil(numSides/10);
x = rand(numSides+fudge, 1);
y = rand(numSides+fudge, 1);
dt = DelaunayTri(x, y);
boundaryEdges = freeBoundary(dt);
numEdges = size(boundaryEdges, 1);
while numEdges ~= numSides
if numEdges > numSides
triIndex = vertexAttachments(dt, boundaryEdges(:,1));
triIndex = triIndex(randperm(numel(triIndex)));
keep = (cellfun('size', triIndex, 2) ~= 1);
end
if (numEdges < numSides) || all(keep)
triIndex = edgeAttachments(dt, boundaryEdges);
triIndex = triIndex(randperm(numel(triIndex)));
triPoints = dt([triIndex{:}], :);
keep = all(ismember(triPoints, boundaryEdges(:,1)), 2);
end
if all(keep)
warning('Couldn''t achieve desired number of sides!');
break
end
triPoints = dt.Triangulation;
triPoints(triIndex{find(~keep, 1)}, :) = [];
dt = TriRep(triPoints, x, y);
boundaryEdges = freeBoundary(dt);
numEdges = size(boundaryEdges, 1);
end
boundaryEdges = [boundaryEdges(:,1); boundaryEdges(1,1)];
x = dt.X(boundaryEdges, 1);
y = dt.X(boundaryEdges, 2);
valueOfX(i) = x;
valueOfY(i)= y;
warning(oldState);
hold all
patch(x,y,'r-')
end
end
In the code, in "valueofX and valueofY", i tried to store the array, but its showing error. Please help me to store the array for each polygon.
0 Comments
Accepted Answer
Stalin Samuel
on 23 Nov 2015
Edited: Stalin Samuel
on 23 Nov 2015
7 Comments
More Answers (0)
See Also
Categories
Find more on Parallel for-Loops (parfor) in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!