给定一个代码,例如,像这样
A=rand(10,10);
indX(:,:,1)=[2,3;1,6]; indX(:,:,2)=[2,5;2,6];
indY(:,:,1)=[4,6;2,3]; indY(:,:,2)=[7,5;3,4];
for i=1:2
for j=1:2
ind=sub2ind(size(A), indX(:,:,i), indY(:,:,j));
figure,imagesc(A(ind));
end
end
我想得到同样的结果,不使用for循环。有没有更快的方法?
1条答案
按热度按时间2q5ifsrm1#
1.-只是为了确保理解imagesc的工作原理
这是NxN像素化矩阵图;
imagesc(A)
而这只是一个单一的像素大小的整个图像
这是你想要的吗?还是你想打开并改变初始图像c(A)的单个像素,保持A不变?
我觉得你真正想要的是第二个:
以上任何一项,或任何其他不包括的,
然而,在图中持有整个
imagesc(A)
,而不仅仅是imagesc(A(4))
。如果不是这样,请纠正我,但是如果你真的想通过
colorbar
像信号量一样移动整个图,那么无论如何都不需要在问题中发布代码。让我们继续这样的假设。
2.-获取所有X Y组合
nX
nY
真的有必要是正方形吗?现在,
L
包含使用双for循环生成的所有索引对**3.-让它 Flink **
显示结果,因为不清楚你是否想打开/关闭关闭/打开 Flink 单个像素,或交换,或任何..我去 Flink 。
4.-只调用一次数字
也不需要在忙碌for循环中调用command figure
我知道你说不for循环,但是提前构建所有索引的序列是关键点,这将保存你在问题中要求的代码时间。
谢谢你阅读我的答案。