【问题标题】:Find index from row and column从行和列中查找索引
【发布时间】:2017-10-06 09:39:43
【问题描述】:

我正在尝试根据行和列的对应值填充主数组。

例如如果 80 匹配第一列中的值,而 120 匹配第一行中的值。在该索引中插入一个值。

example

如何做到这一点?

最终目标是通过从许多文件中提取最大值并使用与主数组中的列和行对应的值来查找索引并将该最大值存储在那里来填充此表。

这是在正确的道路上还是我的思维过程偏离了方向,应该使用不同的逻辑?

谢谢

【问题讨论】:

  • 行索引可以使用find(A(:,1)==80),列索引可以使用find(A(1,:)==120)
  • 尝试使用稀疏矩阵。
  • 拜托,如果您在 stackoverflow 中提问,您至少是一个软件人。您必须意识到图像上的数据/文本是多么无用。将它们添加为文本
  • 嗨,史蒂夫,我不确定这将如何工作,因为我将拥有两个而不是一个。嗨安德更多背景我有一个数组,例如2x8 MastArray = [0,0,20,40,60,80,100,120;5,0,0,0,0,0,0,0] 通过在另一个文件中通过索引对应于最大数的值来查找值,例如"test" = max(A) B = position(test) 5 C = speed(test) 60 使用这些值我需要在 MastArray 中找到两者都为真的索引。所以我可以在那个位置插入“测试”。如果这有意义?
  • 您可以将它们保存为例如iijj,然后访问A(ii,jj)

标签: arrays matlab matrix indexing row


【解决方案1】:

我不确定我是否完全理解了这个问题,但这是一种实现插入的方法。

正如Steve 建议的那样,这可以使用find 来完成。 (有关文档,请参阅here

MastArray = [0,0,20,40,60,80,100,120;80,0,0,0,0,0,0,0];

[~,c] = find(ismember(MastArray(1,:), 120));
[r,~] = find(ismember(MastArray(:,1), 80));

MastArray(r,c) = 42;  

可能有更好的方法来做到这一点,但这是我现在能想到的最简单的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 2014-11-13
    相关资源
    最近更新 更多