【问题标题】:Change matrix elements from vectors in MATLAB在 MATLAB 中从向量更改矩阵元素
【发布时间】:2013-09-03 05:44:16
【问题描述】:

我有一个矩阵 M 只包含零。现在我有两个数组。第一个包含需要更改的矩阵索引,第二个包含需要更改这些索引处的矩阵元素的值。

假设:

mat_A = zeros(50, 50);
vec_indices = [4; 5; 2500];
vec_values  = [1; 1; 1];

现在如果我说M(4), M(5) or M(2500),我希望结果在所有情况下都是 1。

是否有一个简单的“单线”可以完成这项任务?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    简单:

    mat_A(vec_indices) = vec_values
    

    请注意,这仅适用于 linear indices,因此当您将 50x50 矩阵展平为一个 2500x1 向量时。

    【讨论】:

    • 是的,我试过了,得到了Subscript indices must either be real positive integers or logicals
    • 它可以在我的电脑上运行。请发布一个完整的示例,为您提供错误消息。
    • hm...你说得对,我的简单示例也适用于我...我正在阅读带有textread 的两个向量。他们是<280x1 double>
    • [vec_1, vec_2] = textread('test.txt', '%u %u'); 当我尝试:mat_A(vec_1) = vec_2 时,我收到上面的错误消息。这两个向量包含正确的值...
    • 好吧...我的错误是第一个向量包含索引 0...对不起!
    猜你喜欢
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    相关资源
    最近更新 更多