我有下面的函数来处理Rankk和Rankk和gamma值的数组。
N = 3;
k = randi([1,1000],N+1,1,"double");
gamma = randi([1,100],N+1,1,"double");
K = @(x) [zeros(N,N)];
我需要用特定的值来填充这个函数句柄。对于N=3的这个例子,对应的矩阵为:
观察这个矩阵,可以看到模式是从矩阵中的前两个元素(绿色)开始,复制它们的值,向右移动一次,向下移动一次,然后将元素中每个变量的索引增加1。
我想用下面的函数来返回RISK:
function K = karray (k,N)
K = @(x) [zeros(N,N)];
for i=1:1:N
for j=1:1:N
K(i,j) = (k(i)*gamma(i)+k(i+1)*gamma(i+1))*x(i)^2+k(i)+k(i+1);
K(i,j+1) = -3*k(i+1)*gamma(i+1)*x(i)^2-k(i+1);
end
end
end
我最初的想法是使用一个嵌套的for循环来填充KNOK,但由于K是一个函数句柄,我不能简单地使用K(i,j)
访问K中的每个元素。我认为我填充K的方法是正确的,但我不确定如何正确访问K中的每个元素。
1条答案
按热度按时间u91tlkcl1#
这里spdiags用于创建对角矩阵。否则,你可以使用for循环来填充对角矩阵。