利用矩阵输入matlab实现Linspace

利用矩阵输入matlab实现Linspace,matlab,Matlab,我的问题似乎有些奇怪,因为我知道在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);

我的问题似乎有些奇怪,因为我知道在
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

可能是使用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
循环快,或者甚至不知道这里的要点:)

for循环不会减慢您的计算速度。是否可以包含使用for循环所需的代码?它是数值计算二重积分。@AnderBiguri假设OP使用的是Matlab 2015b或更高版本,否则就要失败了slower@SembeiNorimaki如果存在矢量化解决方案,则速度可能较慢。