MATLAB max()函數報錯“下標索引必須爲正整數類型或邏輯類型。”

 程序想要實現將PID三個參數的值限定在[0,1]中,代碼如下:

clear
clc
%將PID的參數限制在[0,1]
max=1;%上限
min=0;%下限
PIDmax=ones(3,1)*max;
PIDmin=ones(3,1)*min;
PID=[2.5 0.5 -0.1]';
newPID=min(max(PID,PIDmin),PIDmax)

報錯信息: 

 

 變量名稱不要命名爲函數名,這裏先將max=1,把max定義爲了一個值,後面遇到max就會當成一個值來處理,就不會調用max()函數。

clear
clc
%將PID的參數限制在[0,1]
ma=1;%上限,變量名不要設置爲max
mi=0;%下限,變量名不要設置爲min
PIDmax=ones(3,1)*ma;
PIDmin=ones(3,1)*mi;
PID=[2.5 0.5 -0.1]';
newPID=min(max(PID,PIDmin),PIDmax)

 運行正確:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章