考虑元素为的n
xn
矩阵C
Cij = 0 if i/j < 2
Cij = ij^2 otherwise
with 1 <= i,j <= n
编写一个Matlab函数matSetup
,作为输入n
并返回矩阵C
。使用您的函数为n = 6
创建C
。function [Cij]= matSetup(n)
我已经写了这个,但它似乎不是正确的
function Cij=matSetup(n)
for n=1:n
% whatever you write here is done with i=1, then i=2, then i=3, etc.
Cij(3,j)=i+7;
if (i/j)<2
Cij=0
else
Cij=i*(j)^2
end
end
end
不幸的是,你不能只写一些数学类的东西,让计算机理解它。像1<=i<=n
这样的东西必须用一个显式循环来写。对于Matlab,这里有一种编写循环的方法:
for i=1:n
% whatever you write here is done with i=1, then i=2, then i=3, etc.
end
要在Matlab中为数组的元素赋值,请执行以下操作:
Cij(3,j)=i+7;
要在Matlab中测试条件,请执行以下操作:
if i+3>2*j
% What you write here is done if the condition is true
else
% What you write here is done if the condition is false
end
如果你把所有这些东西正确地放在一起,你应该能够编写你想要的函数。
与其他答案一样,您应该首先学会使用循环来编写一个简单的程序来实现您的目标。当您感到足够舒适时,可以尝试使用meshgrid
等函数对程序进行矢量化。下面是一个例子:
n = 20;
eps = 1/(n+1);
[x, y] = meshgrid(1:n, 1:n);
r = y./x;
z = heaviside(r - 2 + eps) .* y .* x.^2;