Add Vertex function bug

There seems to be a problem with the addvertex function in R2022a. It works fine in R2021a.
There is a problem in how I can add new vertices to an existing model, where this is some inconsistency in passing 2D and 3D vertices to the addVertex function.
Sometimes, it seems there is a problem on how the function wants 2D inputs and sometimes 3D inputs.
Here's a sample. How can it take the first vertex and not the second one?
pgon = polyshape([1 1 2 4], [1 4 4 1]);
tr = triangulation(pgon);
pdmodel = createpde;
g = geometryFromMesh(pdmodel, tr.Points', tr.ConnectivityList');
addVertex(g,'Coordinates',double([1.66,4.00; 1.33,4.00])); % This works
addVertex(g,'Coordinates',double([1.00,3.00; 1.00,2.00])); % This throws an error
Error using pde.DiscreteGeometry/addVertex
Coordinates value must be a 3-column double matrix not containing Inf, NaN, or complex numbers.

5 Comments

Thank you for reaching out to us.
I successfully reproduced the issue in MATLAB R2022a and reported the issue to our development team. Please let me know if you have any questions in the meantime!
Is there any workaround for this? I need to add a vertex to a Geometry model.
Also, if the bug gets fixed. Will it be done in R2022b?
A possible workaround from me is to add each vertex one by one. Please let me know whether it works for you or not. For example,
pgon = polyshape([1 1 2 4], [1 4 4 1]);
tr = triangulation(pgon);
pdmodel = createpde;
g = geometryFromMesh(pdmodel, tr.Points', tr.ConnectivityList');
addVertex(g,'Coordinates',[1.66,4.00]);
addVertex(g,'Coordinates',[1.33,4.00]);
addVertex(g,'Coordinates', [1.00,3.00]);
addVertex(g,'Coordinates',[1.00,2.00]);
pdegplot(g, 'VertexLabels', 'on','FaceAlpha',0.5);
Allan
Allan on 22 Jul 2022
Edited: Allan on 22 Jul 2022
Yes that works! My full code is working now.
Thank you for your suggestion @Kangming
How to add points on a cylindrical surface? It will prompt an error-“Specified point too far from the boundaries.”

Sign in to comment.

 Accepted Answer

Allan
Allan on 25 Jul 2022
@Kangming had give a workaround to this bug. Adding a vertex one by one seems to not have pose any issues with the addVertex( ) function.

More Answers (0)

Asked:

on 18 Jul 2022

Commented:

on 11 Jun 2024

Community Treasure Hunt

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

Start Hunting!