【问题标题】:Adding elements in array in Matlab [closed]在 Matlab 中的数组中添加元素 [关闭]
【发布时间】:2018-04-30 11:57:50
【问题描述】:

我必须在数组中添加元素。

我有功能:

 function d = kronDel(j,k)

if j == k
    d = 1;
else
    d = 0;
end

我有 n=0:31。

我试过了:

x2=j*kronDel(n-2,0);

为什么这不起作用?

我只得到 x2=0;

【问题讨论】:

  • 期望的输出是什么?正如所写,kronDel 只输出一个标量,所以你得到的结果并不奇怪。
  • 我需要 x2=[0,0,j,0,0,0,0... 到 31 个全 0] j=sqrt(-1)
  • 请注意,数学中的大多数 kroneker delta 不会像您那样转换为代码。矩阵上的 kronecker delta 字面意思是 matrix(j),无需创建副本并将其余部分设置为零。根据定义,数组的单个元素是数组上的 kronecker delta。

标签: arrays matlab function octave


【解决方案1】:

你想创建一个 kronecker delta 函数,但你不需要它。

x2 = j(n==2)

或者,如果你想保留零

x2 = j.*(n==2)

如果你真的想做这个功能,那就适应它吧:

function d = kronDel(j,k)
d = j==k;

根据您的评论:“x2=[0,0,j,0,0,0,0...到 31 个全 0] j=sqrt(-1)"

x2=zeros(1,31);x2(3)=i

【讨论】:

  • 但是我的论点 j 应该是一个向量。并且函数只返回一个向量的第一个成员的值。
  • 我不知道你想说什么。我编辑了我的答案以回答您的评论。
  • 我必须从函数中获取 x2,而不是那样。 y=i * kronDel(n) 并且 n 是 0 到 31 的向量,y 也应该是向量
  • 像我在上面发布的那样创建函数kronDel.m (d=j==k) 并运行n=0:31;y=i*kronDel(n-2,0)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-16
相关资源
最近更新 更多