1
我似乎無法將一個函數的變量傳遞給另一個函數。我已經使用了相當廣泛的功能(但我仍然是一個編程新手),所以我可能只是在這裏犯了一個愚蠢的錯誤,但我不能在我的生活中找到它!這就是我正在做的。在函數之間傳遞輸出參數,代碼不工作
我的第一個功能
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
在此先感謝
謝謝,知道這是愚蠢的東西一樣,= P。我認爲這個問題是在創紀錄的時間內提出並解決的 – spaderdabomb