2017-07-04 55 views
1

这是我的代码看起来像点数现在使用interp2使小

b=load('filenamehere'); 
b=b(46:285,51:170); 

x=1:size(b,1); 
y=1:size(b,2); 

xq=1:size(b,1)/4; 
yq=1:size(b,2)/4; 

B=interp2(x,y,b,xq,yq); 

b为制作240x120矩阵,我想拥有它是一个60x30矩阵,使我的电脑能够处理后来我必须做的计算。不知道我必须做什么才能使其工作,我也尝试使用[X,Y]=meshgrid(x,y)和xq,yq相同。任何帮助表示赞赏。

回答

0

我在代码中看到了几个问题。

b=load('filenamehere'); 

将返回一个结构,而不是矩阵。现在让我们忽略这个,假设你有矩阵b和240x120大小。

XQYQ采取的第一个1/4的b。我想你想每四分钟拿一分。如果是这样,你可以做

B = b(1:4:end, 1:4:end); 

或使用下采样如果信号处理工具箱:

B = downsample(b, 4); 

如果你真的需要插值,XQ和YQ,如果他们是载体,应该有不同的方向:

B = interp2(b, 1:4:120, (1:4:240).'); 
+0

我明白你在说什么,我用'filenamehere'作为占位符,它实际上是一个.mfm文件; B = interp2(b,1:4:120,(1:4:240)。');工作。谢谢,你能解释一下它的作用,是什么意思? – TRecht

+0

每4分只需一分。让你这对你有好处。 Interp2虽然会做一些平滑处理。选择最适合您需要的东西。 –