我正在處理一系列需要10個以上單值參數的MatLab函數。我用結構來傳遞參數來保持代碼可讀。一個函數頭的一個例子(輸入爲一個結構):在將結構傳遞給Matlab中的函數時重新分配變量
function output = myFunction(input)
我發現,在整個代碼鍵入結構名稱使它更難閱讀:
calc1 = input.var1 * input.var2;
calc2 = input.var2 * input.var3;
我實現示例上面可以方便地使用一個數組,但是我的大部分論點都是不相關的,而且是不同類型的。另外,我在變量上執行的操作比上面的例子更復雜,並且不適用於數組。
我可以創建變量名接受來自輸入結構中的值:
function output = myFunction(input)
var1 = input.var1;
var2 = input.var2;
var3 = input.var3;
calc1 = var1 * var2;
calc2 = var2 * var3;
這樣做產生在這什麼都不做,但重新分配的輸入變量的函數的頂部長塊,並且數據被複制,所以存在性能損失。另一方面,代碼更易於閱讀。
是否有任何編碼規範可以提供指導?我在Google和Google上發現了大量資源,建議使用結構將大量數據傳遞給MatLab函數,但對如何智能地執行這些函數並不感興趣。
我不知道您的代碼,但我不認爲輸入結構名稱會使其難以閱讀。相反,我認爲它很清楚地表明您正在計算中使用輸入變量。如果它真的困擾你,你可以選擇一個簡短的名字,比如'in',它仍然很清晰,但是產生的混亂更少。 – denahiro 2012-07-11 06:24:22
我同意@denahiro - 你不應該分配'簡單'變量;只需要重新命名輸入參數即可。 – Edric 2012-07-11 07:17:24
感謝您的輸入 - 我已將輸入結構名稱更改爲'in',並省略了新的變量名稱。我還將函數輸出更改爲名爲「out」的結構。我發現這樣可以更容易地發現某些錯誤。如果我在任務表達式的左側看到,我知道有什麼是錯誤的! –
2012-07-12 02:13:54