# The grid vectors do not define a grid of points that match the given values.

0 votes
354 views

## Problem :

I have some of the time/frequency data and I try to interpolate it using a `interp2` function of Matlab. My data `[F,T,data]` is obtained from the different Matlab routine of a Matlab, spectrogram in case you are interested as below.

``````[~,F,T,data] = spectrogram(...)
data = 10*log10(data);``````

I can plot my data using `surf`. My data is fine, I believe. But interpolating my data seems to be the problem. Even using the `interp2(F,T,data,F,T)` (so actually no interpolating) gives the error as below.

``````interp2(F,T,data,f,t)

Error using griddedInterpolant
The grid vectors do not define a grid of points that match the given values.
Error in interp2>makegriddedinterp (line 228)
F = griddedInterpolant(varargin{:});
Error in interp2 (line 128)``````

What is going wrong here?

0 votes

## Solution :

Your problem is that you should swap your  `F` and `T`:

`interp2(T,F,data,t,f);`

Your first argument corresponds with the columns of a matrix and a second argument with a rows.

If X and Y are the grid vectors, then your V must be the matrix containing a length(Y) rows and length(X) columns.

As an alternative, you can take a transpose of `data`:

`interp2(F,T,data',f,t);`

Reasoning behind the argument order

`interp2(X,Y,V,Xq,Yq)` is always interpreted as a interpolation of the function, represented by a matrix V, i.e. a sample values and a problem is that the arguments/indexes of the function/matrix are rather supplied in the opposite order:

`matrix(row, column)`

versus

`function(x,y)`

`Here x` (first argument) often represents a horizontal axes and therefore corresponds with a  `column` (second argument) argument and idem for the `y` and `row`.

## Related questions

0 votes
1 answer 4 views
4 views
Problem: I have some time/frequency data and I try to interpolate it using the interp2 function of Matlab. The data [F,T,data] is obtained from a different Matlab routine of Matlab, spectrogram in case you are interested. [~,F,T,data] = spectrogram(...) data = 10*log10(data); I can plot the data ... (F),size(T),size(data),size(f),size(t) ans = 129 1 ans = 1 52 ans = 129 52 ans = 200 1 ans = 1 121
0 votes
1 answer 17 views
17 views
Problem: I keep getting this error:error using griddedinterpolant the grid vectors must contain unique points.Please someone help me.
0 votes
1 answer 16 views
16 views
Program: please help to solve me... how to rig a character in unity
0 votes
1 answer 22 views
22 views
Do I need to use C# Windows Application or can I use Console Applications? Do I only need to save the charts on a server?
0 votes
1 answer 318 views
318 views
Problem: I am trying to plot two vectors in MATLAB and it keeps giving me the error that error in plot vector must be same length. What to do? Some one please help.
0 votes
1 answer 78 views
78 views
Problem: You should not define a class field that is dependent upon the values of other class fields: A) in order to avoid having stale data B) because it is redundant C) because it should be defined in another class D) in order to keep it current
0 votes
1 answer 42 views
42 views
Problem: I want to define a variable in Matlab in terms of x. Please help.
0 votes
0 answers 3 views
3 views
Problem: I have written this codeing for this problem:- /** * Definition for a point. * class Point { * int x; * int y; * Point() { x = 0; y = 0; } * Point(int a, int b) { x = a; y = b; } * } */ public class Solution { public int maxPoints(Point[] ... O(n^3). I am trying to find is 2d plan not 3. And does there exist a better solution to this problem at better run time. I can't think of any.
0 votes
1 answer 17 views
17 views
Problem: i got error please anyone who help me please help non-singleton dimensions of the two input arrays must match each other.
0 votes
0 answers 5 views
5 views
Problem: I was trying to solve Lorenz System in matlab by using the method of RK2 and RK4. I had a script for both of the methods, the problem now is how can converge the following y(1) = @(t,y) 10*(y(2)-y(1)); y(2) = @(t,y) y(1)*(28-y(3))-y(2); y(3) = @(t,y) y(1)*y(2)-8*y(3)/3; ... y1 = stepsize.*fcn(t(n),y(:,n)); y2 = stepsize.*fcn(t(n) + stepsize/2, y(:,n) + y1./2); y(:,n+1) = y(:,n) + y2; end