自学内容网 自学内容网

Matlab报错——错误使用 vertcat

错误提示:

原因:

这个错误表明 segment_lengths 的维度和 0 不一致。在 MATLAB 中,有时,diff 函数的输出可能是行向量,而segment_lengths 应该是一个列向量才能与 0 正确连接。

解决方法:

使用转置操作 .' segment_lengths 强制转换为列向量,从而保证 [0; segment_lengths] 的维度一致。

% 计算每个相邻点之间的距离(弧长段),确保结果为列向量
segment_lengths = sqrt((diff(xunizhuang_x).^2 + diff(xunizhuang_y).^2)).'; %使用转置操作 .'

% 计算累积弧长 s
s = cumsum([0; segment_lengths]);

也有一种原因是:使用了diff 操作,它返回的数组长度比原数组短1,因此,一阶导数 dx_ds 和 dy_ds 的长度比原数据少 1,二阶导数 ddx_ds2 和 ddy_ds2 比一阶导数少 1,需要使用 1:end-1 来对齐长度。


原文地址:https://blog.csdn.net/qq_47885795/article/details/143008510

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!