Matlab:如何从循环中输入向量?
我有一些变量:Matlab:如何从循环中输入向量?,matlab,loops,vector,Matlab,Loops,Vector,我有一些变量: f0=100; N=5; 然后我输入了这个循环: f=zeros(size(2*N+1)); for j=1:2*N+1 n= j-(N+1); if n==0 f(j)=f0/2; else f(j)=f0*( (exp(-i*n*2*pi)*(i*2*pi*n+1)-1)/(4*pi^2*n^2)); end f= %...xx something xx..% e
f0=100;
N=5;
然后我输入了这个循环:
f=zeros(size(2*N+1));
for j=1:2*N+1
n= j-(N+1);
if n==0
f(j)=f0/2;
else
f(j)=f0*( (exp(-i*n*2*pi)*(i*2*pi*n+1)-1)/(4*pi^2*n^2));
end
f= %...xx something xx..%
end
我想得到一个向量f=(f(-5)f(-4)…f(0)…f(5)),大小为:2*N+1=11。显然,为了便于检查,f(0)应该是50.:)
感谢您的帮助和回复:)我个人会这样做:
f0 = 100;
n = 1:5;
f=f0.*( (exp(-i.*n.*2.*pi).*(i.*2.*pi.*n+1)-1)./(4.*pi.^2.*n.^2));
f = [-fliplr(f) f0/2 f];
甚至更简单:
f0 = 100;
n = -5:5;
f=f0.*( (exp(-i.*n.*2.*pi).*(i.*2.*pi.*n+1)-1)./(4.*pi.^2.*n.^2));
f(ceil(numel(n)/2)) = f0/2;
f =
Columns 1 through 4
-0.0000 - 3.1831i -0.0000 - 3.9789i -0.0000 - 5.3052i -0.0000 - 7.9577i
Columns 5 through 8
-0.0000 -15.9155i 50.0000 -0.0000 +15.9155i -0.0000 + 7.9577i
Columns 9 through 11
-0.0000 + 5.3052i -0.0000 + 3.9789i -0.0000 + 3.1831i
你说的“类型向量”是什么意思?您想在屏幕上打印它吗?您介意将预期结果发布到fpe吗?您需要条件,即n==0 f(j)=f0/2,因此您的简单方法不起作用;)我需要这个循环,我只需要打印一个带有f(j)的向量loop@KarelDrazdilD:请确保
n(6)=0
和f(6)=50
完全符合您的要求。@KarelDrazdil:而且,顺便说一句,您在没有任何循环的情况下达到了您想要的结果,这是MATLAB的纯本质!@fpe:是的,如果你把它写在纸上,但是你的代码在Matlab中不工作,你不能这样做:sth/0->没有定义!这就是数学,在Matlab中尝试一下,您将看到;)你明白吗