编写一个函数,该函数作为输入 'n' 并返回矩阵 C, Cij= 0 如果 i/j<2 , Cij =ij^2 否则在 MATLAB 中



考虑元素为的nxn矩阵C

Cij = 0      if i/j < 2
Cij = ij^2   otherwise
with 1 <= i,j <= n

编写一个Matlab函数matSetup,作为输入n并返回矩阵C。使用您的函数为n = 6创建Cfunction [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;

相关内容

  • 没有找到相关文章

最新更新