2015-04-03 103 views
0

如果我構建矩陣A1如下:MatLab的矩陣結構

a1=2; 
v1i=0; 
t1i=0; 
dt=0.1; 
syms t real 
t1f=solve(int(a1,t)+v1i==40,t); 
t1=t1i:dt:t1f; 
A1(:,1)=t1; 
A1(:,2)=a1; 

然後A1顯示爲:

[  0, 2] 
[ 1/10, 2] 
[ 1/5, 2] 
[ 3/10, 2] 
... 

不過,我想A1是這樣的:

0 2.0000 
0.1000 2.0000 
0.2000 2.0000 
0.3000 2.0000 
... 

經過一番玩這個,我注意到t1f,也許它是如何計算影響矩陣的形狀。所以

a1=2; 
v1i=0; 
t1i=0; 
dt=0.1; 
t1=t1i:dt:20; 
A1(:,1)=t1; 
A1(:,2)=a1; 

產生期望的結果。如何在不移除t1f的計算的情況下獲得我想要的矩陣形狀?

回答

1

作爲替代double解決方案,您可以用數字進行解決方案,並完全避免符號工具箱:

t1f = fzero(@(t) integral(@(t)a1,0,t,'ArrayValued',true)+v1i-40,v1i); 
2

我想我找到了答案。 t1fsym所以如果我讓double,然後我得到我想要的結果:

a1=2; 
v1i=0; 
t1i=0; 
dt=0.1; 
syms t real 
t1f=double(solve(int(a1,t)+v1i==40,t)); 
t1=t1i:dt:t1f; 
A1(:,1)=t1; 
A1(:,2)=a1;