【问题标题】:Finding the maximum value of each row and reshaping the matrix [closed]查找每行的最大值并重塑矩阵[关闭]
【发布时间】:2013-06-14 18:10:17
【问题描述】:

假设我们有以下矩阵:

2 5
5 3 
6 3
6 4 

我想做的是:

1-求每一行的最大值 对于这部分,我认为我们可以做到以下几点?

[r,c] = size(u);
for i=1:c
for j=1:r
index=1;
for i=1:c
    for j=1:r
       [value,position]=max(u(j,:)); 
       membershipMatrix(index)=value; 
       index=index+1;
    end
end

2- 然后,我想将上述矩阵重塑为2x2 矩阵。 我认为我们可以在这里做以下事情?

reshape(I,2,2)

一开始这听起来微不足道。我尝试在65536x2 矩阵上执行上述步骤1,但最终得到了131072x1matrix,我最初计划将reshape 转换为256x256 矩阵,因为我认为第一步我会得到一个65536x1 矩阵。

可能出了什么问题?

谢谢。

【问题讨论】:

标签: matlab matrix max reshape


【解决方案1】:

在 Matlab 中 - 矢量化!

mx = max( u, [], 2 ); % find max along rows of u
reshape( mx, 256, 256 ); 

【讨论】:

  • 感谢您的回复。当您在max 中使用[] 时,这表示什么?
  • @Med-SWEng 看看matlab doc 怎么说:第三个用例。
  • 它提到了在特定维度上找到最大值时明确显示的内容,但没有描述插入[]的原因。谢谢
  • 与第二个矩阵有关。请参阅帮助中的 MAX(X,Y),它说 X 或 Y 都可以是标量。
  • @Med-SWEng max( [0 1], 2 )max( [0 1], [], 2) 有什么区别?试试吧,我相信它会回答你的问题。
猜你喜欢
  • 1970-01-01
  • 2018-02-12
  • 1970-01-01
  • 2014-06-17
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
  • 2013-07-10
相关资源
最近更新 更多