一、背景
在使用matlab的scatter函數畫圖時報錯“數組索引必須為正整數或邏輯值”。
scatter函數說明:scatter(x,y) 在向量 x 和 y 指定的位置創建一個包含圓形標記的散點圖。
二、解決辦法
如果使用scatter函數時報上述錯誤,嘗試將連續函數先轉換為函數句柄,即可解決:
1、錯誤案例:
假設我的函數為:second_derivative_1
使用scatter畫圖:
scatter( 0, second_derivative_1(0) , 100, ‘filled’, ‘linewidth’, 3, ‘markerfacecolor’, ‘y’, ‘markeredgecolor’, ‘k’ );
則報錯:數組索引必須為正整數或邏輯值
2、正確操作:
首先將解轉換為函數句柄
ySol1 = matlabFunction(second_derivative_1);
再使用scatter函數:
scatter( 0, ySol1(0) , 100, ‘filled’, ‘linewidth’, 3, ‘markerfacecolor’, ‘y’, ‘markeredgecolor’, ‘k’ );
完美解決,出現了我需要的在特殊位置的圓形標記。