black945 发表于 2010-6-2 19:35

求助矩阵赋值大小的问题

事情是这样的,我有一个程序,F1 F2 F3 F4都已经定义好, 然后使用

%反力计算
xf=0.00001:0.01:20.00; yf(2000)=0;
for i=1:2000, yf(i)=(f1(0.01*i)+f3(0.01*i)+f4(0.01*i))*9.8; end
plot(xf,yf); hold on;
可以做出一个图片来

但是我发现横坐标太长了 ,想把20改成7.5,但是发现改完之后画不出来图,提示说
Error in ==> C:\Documents and Settings\Administrator\桌面\复件 新\fl.m
On line 7==> plot(xf,yf);hold on;
??? Error using ==> plot
Vectors must be the same lengths.

后来把20改成30

%反力计算
xf=0.00001:0.01:30.00; yf(2000)=0;
for i=1:3000, yf(i)=(f1(0.01*i)+f3(0.01*i)+f4(0.01*i))*9.8; end
plot(xf,yf); hold on;
又可以做出图来
但是再改回20就连20也做不出来了

发现只要用一个大数做一次,比这个数小的数都做不出来了,就高手指点

[ 本帖最后由 ChaChing 于 2010-6-2 22:07 编辑 ]

qibbxxt 发表于 2010-6-2 20:17

xf=0.00001:0.01:M;
yf(length(xf))=0;
for i=1:length(xf)
yf(i)=(f1(0.01*i)+f3(0.01*i)+f4(0.01*i))*9.8;
end
plot(xf,yf);hold on;
我这里没有安装Matlab
我试着写了一段代码
应该是可以解决你的问题
你试一试

ChaChing 发表于 2010-6-2 22:04

使用xf=0.00001:0.01:7.5得到的xf为1*750, 但yf(2000)=0得到的yf至少为1*2000, 当然不等长!
改成30后再改回20, yf已为1*3000, 大小并不会因为赋值而改变!

看看此帖的8F, 常见的程序出错问题整理 (eight)
http://forum.vibunion.com/forum/thread-46001-1-1.html

black945 发表于 2010-6-3 14:55

回复 沙发 qibbxxt 的帖子

谢谢热心人 非常感谢

black945 发表于 2010-6-3 14:55

回复 板凳 ChaChing 的帖子

谢谢谢谢 新建一个重新打开貌似好使了
页: [1]
查看完整版本: 求助矩阵赋值大小的问题