Error using medicalref3d/intrinsicToWorld Invalid argument at position 2. Value must be integer.
5 次查看(过去 30 天)
显示 更早的评论
Hi, i try to copy paste and run the live script from your example, but error above pop up. Can anyone help me on this, very new with Matlab and doing a master thesis project on this topic. thanks a milllion in advance.
Create STL Surface Model of Femur Bone for 3-D Printing
best regards
Kam
0 个评论
采纳的回答
Cris LaPierre
2024-2-28
编辑:Cris LaPierre
2024-2-29
There appears to be an issue with the intrinsicToWorld function. There is no requirement in the documentation that these values be positive integers. Please report this to MathWorks here:
2 个评论
Cris LaPierre
2024-2-29
The example does run in R2023a. If you have access to it, you can at least move forward while waiting to hear back.
更多回答(1 个)
Nicolas CRETIN
2024-2-28
编辑:Nicolas CRETIN
2024-2-28
Hi kam!
Is that your question:
You're trying to run this example (this line only works if you have at least Matlab R2022b):
openExample('medical/Create3DBoneSurfaceModelFor3DPrintingExample')
Then the section of code below (extract of the code):
I = vertices(:,1);
J = vertices(:,2);
K = vertices(:,3);
[X,Y,Z] = intrinsicToWorld(R,I,J,K);
generates the following mistake:
Error using medicalref3d/intrinsicToWorld
[X,Y,Z] = intrinsicToWorld(R,I,J,K);
↑
Invalid argument at position 2. Value must be integer.
If this is your question, then did you tried to add this:
I = floor(I);
J = floor(J);
K = floor(K);
to take the integer part of your vectors I, J and K?
Will there be then any major physical consequences (I mean if you take this integer part)?
Best regards,
Nicolas
3 个评论
Nicolas CRETIN
2024-2-28
编辑:Nicolas CRETIN
2024-2-28
But then they are still 2889 values of K that are equal to zero and it seems to be an issue
K(K<0)
ans =
0x1 empty single column vector
K(K<=0)
ans =
2889x1 single column vector
So I replaced all the values of K equal to zero by one (be careful, because I have absolutely no idea about the physical consequences it will have). However it allows the following function to work:
K(K<=0) = 1; % set all the values that are equal to zero to 1
[X,Y,Z] = intrinsicToWorld(R,I,J,K);
Please keep in mind that I don't know what this matrix vertices physically represents, so I may have modified it inappropriately! I can just help with the code
Hope it helps!
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!