【问题标题】:How to set specific row to one and rest all others to zero?如何将特定行设置为 1 并将所有其他行设置为零?
【发布时间】:2017-07-04 22:12:10
【问题描述】:

如何将特定行设置为 1,将矩阵的所有其他条目设置为零?

例如让我们考虑下面的矩阵

Matrix M = 0 0 0 
           1 0 5
           2 0 4
           5 6 8
           0 3 10

例如,我想将 第 4 行 设置为 Result 中的行数,其余设置为零。

Result = 0 0 0
         0 0 0 
         0 0 0 
         1 1 1
         0 0 0

如何做到这一点?

【问题讨论】:

  • 您是否意识到您实际上并不需要原始矩阵?唯一相关的输入是行的索引和矩阵的大小。
  • 谢谢。我很新,我需要一段时间才能弄清楚。

标签: algorithm matlab matrix logic


【解决方案1】:

鉴于任务的简单性,我宁愿建议创建一个新矩阵。只需使用原始矩阵的大小。假设您有矩阵A

B = zeros(size(A));

这将创建一个与A 大小相同的全0 矩阵B。然后,如果您需要更改其中一行的值(例如您的示例中的第 4 行)

B(4,:)=1;

将为该行中的所有值分配 1。我建议在问任何其他问题之前阅读 this page 关于 matlab 中的矩阵索引;)

【讨论】:

  • 别担心,做一些教程和阅读文档通常是一个好的开始。例如见here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 2021-09-18
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多