我似乎无法将变量从一个函数传递给另一个函数。我已经广泛使用了函数(但我仍然是一个编程新手),所以我可能只是在这里犯了一个愚蠢的错误,但我不能为我的生活找到它!这就是我正在做的事情。
我的第一个功能
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
提前致谢
答案 0 :(得分:1)
您应该在函数调用ToF_2_DICOM_Coords
,
function [ ToFparam ] = ToF_3D_Viewer( ToFparam, RGBparam, Naviparam, DICOMparam )
Tofparam = ToF_2_DICOM_Coords(ToFparam,Naviparam,DICOMparam);
disp(ToFparam.ROI.XYZ_DICOM); %says it's a non-existent field!
end