我的问题似乎很奇怪,因为我知道我们不能在linspace(x1,x2,n)
函数中使用矩阵作为输入。但我的问题更像是:我有一个向量A=linspace(0,Amax,N)
,我想建立一个矢量B_k或大矩阵B_k=linspace(0,A(k),N)
的系列,但没有制作一个for
循环减慢我的速度整个计算。
% already defined A
rGC=linspace(0,75e-7,N);
for k=1:N
r=rGC(k);
v=linspace(0,A*r,N);
y=f(r,v);
INT=trapz(v,y);
% The same for 8 more integrals
end
答案 0 :(得分:3)
可能使用interp1来插入类似的内容:
[0 0 0 ... 0 ]
[A(1) A(2) A(3) ... A(N)]
有N行....例如:
N = 5;
Amax = 15;
A = linspace(0, Amax, N);
x = [0 1];
y = zeros(2, N);
y(2, :) = A;
B = interp1(x, y, linspace(0, 1, N))
这将给出:
B =
0 0 0 0 0
0 0.9375 1.8750 2.8125 3.7500
0 1.8750 3.7500 5.6250 7.5000
0 2.8125 5.6250 8.4375 11.2500
0 3.7500 7.5000 11.2500 15.0000
不确定它会比for
循环更快,或者甚至在这里得到点:)