matlab使用scatter函数画图时报错“数组索引必须为正整数或逻辑值”解决办法

一、背景

在使用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’ );

完美解决,出现了我需要的在特殊位置的圆形标记。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Time_Memory_cici/article/details/134572283
今日推荐