【发布时间】:2016-02-27 17:42:31
【问题描述】:
我有一个 5x5 的单元格,每个单元格都有 100x100 个单个数据。我想计算每个矩阵 100x100 中的模式,然后做一些取决于模式的操作。我怎样才能做到这一点?
我有这段代码可以计算每个单元格的模式,现在我想将 100x100 矩阵上的每个值与相应的单元格模式进行比较。
I = imread('DSM.tif');
c = mat2cell(I, [100,100,100,100,100], [100,100,100,100,100])
for i=1:5
for j=1:5
mode_cell = mode(c{i,j}(:))
end
end
我做了这个代码:
modes = cellfun(@(x) mode(x(:)), c, 'UniformOutput', false);
modes = cell2mat(cellfun(@(x) mode(x(:)), c, 'UniformOutput', false));
for i = 1 :5
for j =1 :5
for i2=1 :100
for j2=1 :100
cell = c{i,j};
if cell(i2,j2)<modes(i,j)
teste(i,j)=0;
else
teste(i,j)=1;
end
end
end
end
end
但使用此代码,矩阵 teste 仅为 100x100。我想附上所有的睾丸矩阵,最后我想要一个 500x500 的矩阵。我该怎么做?
【问题讨论】:
-
使用 for 循环或 cellfun,随心所欲。
-
我已经有了每个单元格的模式。但是如何将每个矩阵 100x100 的值与对应的单元格模式进行比较呢?
-
提问的时候,请说清楚你已经明白了什么,你需要什么。现在您收到了一个答案和一条评论,解释了如何执行您已经实施的操作。
-
是的,我知道,对此感到抱歉。我意识到这一点并编辑了问题。