查看: 326|回复: 2|关注: 0

[已解决] 位置 1 的索引超出数组范围(不能超过 182)?

[复制链接]

新手

9 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
本帖最后由 2463476757 于 2020-6-27 18:08 编辑

E=200000;u=0.33; %材料参数
t=1;%几何参数
Fax=1200;Fay=1000;Fbx=800;Fby=750;%载荷边界条件

Nodes=dlmread('Nodes2.txt'); %读取节点坐标
Elements=dlmread('Elements2.txt'); %读取单元编号及其相应节点

n=length(Nodes(:,1)); %节点个数
m=length(Elements(:,1)); %单元个数

%节点力
R=zeros(2*n,1);
R(27)=Fbx;
R(28)=Fby;
R(33)=Fax;
R(34)=Fay;

%节点位移
d=ones(2*n,1);
d(29:30)=0;
d(31:32)=0;
%--------------------------------------
Num_n=n;
Num_e=m;

%-------------------------------------------------------------------------------------计算单元刚度及总体刚度
D= E/(1-u^2)*[ 1 u 0;...
u 1 0;...
0 0 (1-u)/2]; %弹性矩阵

K=zeros(2*Num_n,2*Num_n); %构建总体2n*2n的空矩阵
for i=1:Num_e
%-----------------------------------------------------计算单元刚度
ni=Elements(i,1); %调取单元的i, j, m节点
nj=Elements(i,2);
nm=Elements(i,3);

xi=Nodes(ni,1); %i节点的坐标
yi=Nodes(ni,2);

xj=Nodes(nj,1); % j节点的坐标
yj=Nodes(nj,2);

xm=Nodes(nm,1); % m节点的坐标
ym=Nodes(nm,2);

ai=xj*ym-xm*yj; % 分别计算ai,bi,ci (3-5)
bi=yj-ym;
ci=-xj+xm;

aj=xm*yi-xi*ym;
bj=ym-yi;
cj=-xm+xi;

am=xi*yj-xj*yi;
bm=yi-yj;
cm=-xi+xj;

A=1/2*det([1 xi yi;... % 计算面积 (3-6)
1 xj yj;...
1 xm ym]);
位置 1 的索引超出数组范围(不能超过 182)。

出错 Tri_main (line 84)
xi=Nodes(ni,1); %i节点的坐标

Node.docx

16.99 KB, 下载次数: 0

回复主题 已获打赏: 0 积分

举报

新手

9 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2020-6-27 17:55:13 | 显示全部楼层
本帖最后由 2463476757 于 2020-6-27 18:08 编辑

第一次做,不是很懂
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1636

帖子

345

最佳答案
  • 关注者: 81
发表于 2020-6-27 18:17:39 | 显示全部楼层 |此回复为最佳答案
Nodes是182行的矩阵,只能索引1-182,而Num_e为306,要从1索引到306指定报错啊
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表