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!