我似乎无法将变量从一个函数传递给另一个函数。我已经非常广泛地使用了函数(但我仍然是一个编程新手),所以我可能只是在这里犯了一个愚蠢的错误,但我一辈子都找不到它!这就是我正在做的事情。
我的第一个功能
function [ ToFparam ] = ToF_3D_Viewer( ToFparam, RGBparam, Naviparam, DICOMparam )
ToF_2_DICOM_Coords(ToFparam,Naviparam,DICOMparam);
disp(ToFparam.ROI.XYZ_DICOM); %says it's a non-existent field!
end
我的第二个功能
function [ ToFparam ] = ToF_2_DICOM_Coords( ToFparam, Naviparam, DICOMparam )
Naviparam.Endotip_2_Tracker = diag([1,-1,-1,1]);
[m,n,z]=size(ToFparam.ROI.XYZ);
ToFparam.ROI.XYZ_DICOM=reshape(inv(Naviparam.data.Endo_RefHomMat(1:3,1:3))*inv(Naviparam.Endotip_2_Tracker(1:3,1:3))*(reshape(ToFparam.ROI.XYZ,[m*n z]))')',[m n z]);
disp(ToFparam.ROI.XYZ_DICOM) %outputs correctly!
end
我也尝试将我的第一个函数更改为以下,但是当我稍后尝试添加ToFparam.ROI.XYZ_DICOM
到另一个相同大小的矩阵时,它清楚地输出为我的ToF_2_DICOM_Coords
函数中的矩阵,它会抛出一个错误,说我不能添加一个变量输入“结构”
function [ ToFparam ] = ToF_3D_Viewer( ToFparam, RGBparam, Naviparam, DICOMparam )
ToFparam.ROI.XYZ_DICOM = ToF_2_DICOM_Coords(ToFparam,Naviparam,DICOMparam);
disp(ToFparam.ROI.XYZ_DICOM); %says it's a non-existent field!
end
提前致谢