【发布时间】:2015-02-06 07:33:58
【问题描述】:
我需要在matlab中计算以下内容。
编辑编辑:我总是有一个 16 x 3 矩阵。 16 行 3 列。 3 列代表 R、G、B,16 行代表点。从1-16。 一个示例矩阵如下所示:
1 1 1
-1 0 0
0 0 1
1 0 0
-1 0 0
1 0 -1
1 1 1
1 1 1
0 0 0
-1 0 1
1 0 0
0 0 1
1 0 1
0 0 0
0 0 0
1 0 1
现在我需要知道是否有 11 行连贯地具有最小值。每列中有 1 个值 ~= 0? 在上面的示例中,前 8 行和最后一行在每列中都有 min 1 值并且是连贯的。所以这 9 行是最大连贯的行,中间没有完整的零行。
抱歉,我的第一篇文章不正确。
我用一个非常糟糕的解决方案来做到这一点。有没有更快的方法(矢量化)来做到这一点?
for i=1:16
for j=0:16
if i+j > 16
value = (i+j)-16;
else
value = i+j;
end
if table(value,1) ~= 0 || table(value,2) ~= 0 || table(value,3) ~= 0
equal = equal + 1;
if equal >= 11
copy(y,x) = 1;
equal = 0;
break;
end
else
equal = 0;
end
end
end
end
16 个点是圆形的。这分钟第一个点和最后一个点连接。
感谢您的帮助,并为您的困惑感到抱歉。
【问题讨论】:
-
您的编辑只是混淆了这个问题。编写一个示例矩阵,展示您的解决方案等......
-
为什么不使用完整的最小样本数据。您使用了
1 1 1 1 0 1 1 0 0 0 -1 0 0 0 0,它只是一个行向量,足以迷惑其他人。使用更好的样本数据并发布您的循环解决方案!感谢您帮助我们。 -
是的,你是对的。非常遗憾。我再次编辑我的帖子,希望我的问题更清楚
标签: matlab matrix max continuations