我一直在努力解决这个问题一段时间,如果有人能帮助我,我将不胜感激。我能够生成一个10×10的矩阵,并在矩阵中随机分配“1”。我的目标是在向量中每个元素的位置绘制一个“星号”,其值为“1”,但我似乎无法弄清楚如何将向量映射到x-y坐标系。我在下面写的代码在每个单元格生成一个100星的图,并生成一个向量“v”,但我不知道如何将该图与该向量相关联,而不是在我的图中有100个“星” ,但是我有很多,在元素的相应位置有一个“1”的值。如何将矩阵映射到坐标并绘制它
谢谢! 大卫 [email protected]
close all
clear all
clc
a=10;b=10;
v = zeros(a,b);
xy = int32(randi(a, 100, 2));
z = randi(1, 100, 1); % 100 values.
indexes = sub2ind([a, b], xy(:,1), xy(:,2))
v(indexes) = z
m=length(v);
ctr=0;
for i=1:m^2
x_cor(i)=(i-(floor(i/m)*m))*200-100;
y_cor(i)=(floor(i/m)+1)*200-100;
for j=1:m
if i==j*m
x_cor(i)=((i-(floor(i/m)*m))*200-100)+(2*m*100);
y_cor(i)=(floor(i/m))*200-100;
end
end
end
figure(1)
plot(x_cor,y_cor,'*');
grid on
感谢路易斯,哇这个情节(bsxfun .....)看起来如此复杂,我从来没有见过这样的事情。你能解释一下这个过程,以及“set ticks”命令的作用吗?我试图找出的另一件事是,如果你看看我上面发布的代码,在for循环中,我试图做的是有一个10×10(或更多的单元格)的网格,每个单元格的长度为200并绘制该单元中间的“星”来代表风力涡轮机的位置。是否有修改你的绘图代码,所以它绘制在每个“明星”感谢200×200单元的中间 – Sharkbait