function r = fun(x, params, type)
h = @(x) x(1)-x(8);
x= sym('x',[1,8]);
gamma = 16;
if type == 'linear'
r = gamma*h(x);
elseif type == 'sin'
r = gamma*sin(h(x));
end
end
當我為“sin”型別運行此函式時,我總是收到此錯誤
Arrays have incompatible sizes for this operation.
Error in fun (line 7)
if type == 'linear'
如何解決這個問題?
我只是一個傳遞型別并根據它創建我的輸出,雖然字串可能沒問題,但它不起作用。
我想在線性的情況下將我的函式句柄與 gamma 相乘,并在正弦的情況下乘以 sin。
uj5u.com熱心網友回復:
你可能是說
if strcmp(type,'linear')
type是一個 char 陣列,matlab 不支持這種型別的直接陣列到陣列的文本比較。它嘗試將每個字母相互比較,但如果length(type)不一樣,length('linear')則會出錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/467366.html
標籤:matlab
