matlab - 运行代码时数组索引 Syms 错误
问题描述
clear;
clc;
m=18;
L=4;
g=9.81;
syms ax alpha ay na nb
S = solve(ax - .5.*L.*alpha.*cos(30)==0, 0 ==(ax + alpha.*L.*.5.*cos(30)).*sin(20) + (ay + alpha.*.5.*L.*sin(30)).*cos(30), na + nb.*sin(20) == m.*ax, nb.*cos(20) - m.*g == m.*ay, -na(L./2.*cos(30)) + nb.*cos(20).*(L./2.*sin(30)) + nb.*sin(20).*(L./2.*cos(30)) == .5.*m.*L.^2.*alpha);
S = [S.ax, S.alpha, S.ay, S.na, S.nb]
不断获取数组索引必须是正整数或逻辑值错误
解决方案
看起来脚本需要在行-na
中进行乘法符号。solve()
试试下面的这个片段:
clear;
clc;
m=18;
L=4;
g=9.81;
syms ax alpha ay na nb
S = solve(ax - .5.*L.*alpha.*cos(30)==0, 0==(ax + alpha.*L.*.5.*cos(30)).*sin(20) + (ay + alpha.*.5.*L.*sin(30)).*cos(30), na + nb.*sin(20) == m.*ax, nb.*cos(20) - m.*g == m.*ay, -na.*(L./2.*cos(30)) + nb.*cos(20).*(L./2.*sin(30)) + nb.*sin(20).*(L./2.*cos(30)) == .5.*m.*L.^2.*alpha);
S = [S.ax, S.alpha, S.ay, S.na, S.nb];
disp(S);
推荐阅读
- ios - 反应本机iOS构建问题在提供的路径中找不到应用程序包
- c# - 在没有 Parallel.For() 的情况下在 c# 中的 for 循环中实现多线程
- python - 如何在 abaqus python 脚本中引用 findAt 列表/元组
- c# - 打印列表对象 c#
- bash - bash - 下划线后的第一个字符大写
- html - 对齐同一行上的两个按钮有效,但不是 div
- python - 需要使用 Numpy 在较大的 3D 阵列中评估较小的 3D 阵列
- php - preg_replace all non-digit characters and except all numbers wth 10 digits
- php - 从下拉列表中获取 php 变量而不提交页面
- c-preprocessor - C预处理器替换多个参数