【问题标题】:access columns of row at index matlab访问索引matlab处的行列
【发布时间】:2014-05-21 09:14:30
【问题描述】:

我有一个包含 N 行 8 列的文本文件 A(示例如下):

1    2   0.02    0.28    0.009   0.04    0.03    0.16
2    4   0.04    0.21    0.4     0.04    0.03    0.13

如果我的变量 x=2 和 y=4(我在程序运行期间得到 - 每次运行时值都会改变。) 我知道我需要获取的行的索引:

  rIndex = find((A{1}==x)&(A{2}==y));

这里 rindex = 2。 我需要访问 rIndex 处的行并对该行中的第 3 到 8 列进行操作。即我根据 x 和 y 从另一个文件中获取值,并将这些值除以 rIndex 行的列值。

x_No = 5, y_No = 6;

B = horzcat((x_No-y_No)./A{3}(1),(x_No-y_No))./A{4}(1),(x_No-y_No)./A{5}(1),(x_No-y_No)./A{6}(1),(x_No-y_No)./A{7}(1),(x_No-y_No)./A{8}(1));

B 现在所做的是对 A 中的所有行进行操作。我只需要特定的 rIndex。

【问题讨论】:

  • 我不明白你想做什么。首先您计算rIndex,但您似乎甚至没有使用它。计算机如何知道您只对更改rIndex 中的行感兴趣?此外,最后一行中未解释的变量并没有使事情变得更清楚。
  • @DennisJaheruddin。考虑到无法解释的变量,我已经编辑了我的问题。那就是我在哪里可以使用 rIndex 的问题?我不知道在哪里把它放在代码中。和 matlab 对 indeices 的帮助没有帮助。
  • @RobertP。这是Matlab。谢谢

标签: matlab indexing


【解决方案1】:

目前还不清楚会发生什么,但我认为你可以尝试这样的事情:

for r = 1:numel(rIndex)
    t=rIndex(r);
    result(r,:) = horzcat((x_No-y_No)./A{3}(t),(x_No-y_No))./A{4}(t),(x_No-y_No)./A{5}(t),(x_No-y_No)./A{6}(t),(x_No-y_No)./A{7}(t),(x_No-y_No)./A{8}(t));
end

实际上我可能做的太多了,但希望这会有所帮助。

【讨论】:

  • 这很有帮助,谢谢!如果我使用 'rIndex' 而不是 't' 那应该可以正常工作(没有循环),因为程序运行中 rIndex 发生了变化?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 2011-06-18
  • 1970-01-01
相关资源
最近更新 更多