Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于标量的二维彩色地图-Matlab_Matlab_2d_Colormap - Fatal编程技术网

用于标量的二维彩色地图-Matlab

用于标量的二维彩色地图-Matlab,matlab,2d,colormap,Matlab,2d,Colormap,我在模拟波浪在时间和地点上的传播。我想在空间中为每个时间步的值制作一个彩色贴图。我的意思是,我想制作一个两个轴(x和y)的图形,并用颜色显示这些点上的波浪值(波浪变量为V)。 我怎么做? 我试过: for ind1 = 1:length(t) figure() trisurf(x1,y1,V(:,ind1),'EdgeColor', 'None', 'facecolor', 'interp'); view(2); end 但是我得到一个信息,z(=V)假设是一个函数,而不是一个标量。 有什么建

我在模拟波浪在时间和地点上的传播。我想在空间中为每个时间步的值制作一个彩色贴图。我的意思是,我想制作一个两个轴(x和y)的图形,并用颜色显示这些点上的波浪值(波浪变量为V)。 我怎么做? 我试过:

for ind1 = 1:length(t)
figure()
trisurf(x1,y1,V(:,ind1),'EdgeColor', 'None', 'facecolor', 'interp');
view(2);
end
但是我得到一个信息,z(=V)假设是一个函数,而不是一个标量。
有什么建议吗?

我有两个选择,我认为它们并不完美,但可能会有所帮助

首先,将数据插值到矩形网格上,并使用
contourf

F=scatteredInterp(x,y,V(:,ind1));
X=linspace(min(x),max(x));
Y=linspace(min(y),max(y));
contourf(X,Y,F(X,Y))
其次,使用
散射
绘制具有不同颜色的点:

scatter(x,y,25,V(:,ind1))
当25控制每个标记的大小时,您可能需要对其进行试验


希望这能给你一些想法。

我做了一个循环,最终成功:

clear heart_movie
Vnorm = mat2gray(V(:,1:2000));
x1_new = x1-min(x1)+1;
y1_new = y1-min(y1)+1;

for ind1 = 1:2000
    heart = zeros(max(x1_new),max(y1_new));
    z = Vnorm(:,ind1);
    for ind2 = 1:length(z);
        heart(y1_new(ind2),x1_new(ind2))= z(ind2);
    end
    colormap(jet);
    imagesc(flipud(heart));
end

如果您使用
contourf
?我会检查一下,然后告诉你!谢谢没那么好用。也许是不同的语法?有更多的建议吗?取决于你的数据是什么样的。你能举一个小例子说明你的问题吗。例如,只需创建适当大小的随机矩阵作为数据。我无法从问题的描述中理解你想要什么,对不起,好的!我一开始就做了一个叫dts的delaunay三角测量。因此,我有一个包含两个字段的结构:元素和点。我写了一个动作电位传播的算法,取决于时间和空间。每一步,我计算每一点的电势(V)。现在,对于每一个我想要创建一个彩色贴图的步骤,它显示每个点上的潜在值。我得到了826点,假设迭代次数为100次。V尺寸为826X100,x尺寸为826X1,y尺寸为826X1。