matlab - 最小值矩阵 A 在第 2 到第 3 行和第 2 列的索引行和索引列
问题描述
我的 MATLAB 代码如下:
clear all;
clc;
A=[1 0 3;4 3 0;5 10 3]
[rows,columns]=find(A(:,2)==min(A(2:3,2)))
我想在第 2 到第 3 行和第 2 列中找到最小值矩阵 A 的索引行和索引列。手动,我们可以找到最小值为 3,索引行 = 2,索引列 = 2(见下图)
但是如果我使用上面的代码,我的问题是不一样的。任何人都可以帮助我吗?
解决方案
由于您正在输入列索引,因此无需再次查找。更好的方法是这样做:
col_ind = 2;
[minimum, row_ind] = min(A(2:3,col_ind));
row_ind = row_ind+1; %1 is added since first row is skipped in above line
在您的代码中,
A(2:3, 2)
只有 1 列。columns
将永远如此1
。- 如果
A(1,2)
也与最小值相同,您的代码将返回第一个值的行索引。 - 在计算中跳过第一行和第一列的事实并未包含在输出中。
修复以上问题:
[rows,columns]=find(A(2:3,2)==min(A(2:3,2)));
rows=rows+1; columns=columns+1;
推荐阅读
- java - 无法使用弹簧数据 jpa CrudRepository
- ios - do I need to embed navigation controller if I want to make custom navigation bar view?
- reactjs - 如何连接日期和时间
- c++ - C++14 中向量的 unordered_map 和擦除删除习语的奇怪行为
- c# - AutoMapper 映射无法正常工作 JObject/Json
- spring - 是否可以从 (SERVER = DEDICATED) 切换到 (SERVER = POOLED)
- r - 如何将 csv 中的时间格式更改为 hh:mm:ss
- ruby-on-rails - 如何在rails中使用ajax获取数据
- laravel - Laravel - timestamp() 和 timestampTz() 有什么区别?
- php - 过滤值时的Laravel条件子句