AliceGenalize 2022-10-11 00:21 采纳率: 100%
浏览 140
已结题

MATLAB无法执行赋值?(时程分析法)

最近正在使用MATLAB做专业课程的结课设计,是时程分析法的问题,但是现在赋值范围上碰到了问题。
这里是我的MATLAB代码:
format short g;
F(21,14)=0;
xg=[0 600 1100 1500 2100 2500 2900 350 2050 1500 1000 600 200 -700 -1300 -1700 -2000 -1800 -1500 -700 -250 200 -100 0 0 0];
xg1=xg*2000/max(xg);
xg2=diff(xg1);

f[14)=0;f(4)=9000;f[20)=9000;f(21)=9000;t=0.05;m=250;c=240
for i = 1:21
f(3]=xg2(i);f(1)=0.05i-0.05;f{2)=xg1(i);
f(6>=-m
(f(3)-6f12)/t-3f《11))+c*(3f<12)+f(11>/2t)
f(5)=f(4)+6m/t^2+3c/t;
f<7)=f(6)/(f5);
f{9)=3/tf{7)-3f(12)-0.5f(11)t;
f(8)=6/0.05^2
f(7)-6/0.05*f(12>-3
f(11];
f}13)=f<2)+f(11);
f[14)=f{13)*m;
F(i,:)=f(1,:);
f【10)=f{10)+f(7);f(12)=f12)+f(9);f}11)=f}11)+f(8);
if abs(f(10))>2&&F(1,7)*f(7)>0
f(4)=0;
else
f4)=9000;
end
end
a=max(abs(F(:,13)));
b=max(abs(F(:,14)));
F
a
b
xlswrite('表格2.xls',F)

运行代码,最终运行结果(报错):无法执行赋值,因为左侧的大小为 1×14,右侧的大小为 1×21。
所以究竟是哪里出现了问题?(注:目前不能输入同样的词汇或符号,因此只能基于代码原文函数的外括号做一些修改,原文实际上f函数的自变量都用小括号包围)
无法赋值以后数据无法写入Excel或者CSV文件,MATLAB左侧页面也没有输出相关的表格文件。希望有人能够对以上的代码进行修改、彻底解决赋值的问题,使得编程的数据能够输出,谢谢!

  • 写回答

4条回答 默认 最新

  • Jackyin0720 2022-10-11 07:18
    关注

    Matlab无法执行赋值,因为左侧的索引与右侧的大小不兼容。由于赋值时存储的维度以及数据的维度不一致导致的,一般有以下两种情况
    1.初始化变量时出错
    2.可能未转换数据类型,导致要存入的数据维度和我们想的不一致

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 已采纳回答 10月17日
  • 创建了问题 10月11日

悬赏问题

  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败