compare matrices of different sizes
19 views (last 30 days)
Show older comments
Timothy Dunning
on 19 Apr 2023
Edited: chicken vector
on 20 Apr 2023
I'm generating matrices of different sizes to determine the effect of changing the step size on the accuracy of an iterative solution. I want to compare each matrix with an initial one that i know is accurate. Here is how i was planning to do it:
uCompare=interp2(xInitial,tInitial,uInitial,x,t,"cubic"); %make comparison matrix size equal to new matrix
error=mean(abs((uCompare-u) ./ uCompare)); %find mean % error between matrices
where xInitial and tInitial are the x and y values where the initial matrix uInitial is and x and t are the x and y values of the new matrix. xInitial is the same length as uInitial but 1 row and tInitial is the same height as uInitial but 1 column. The 2d interpolation gives this error:
Error using griddedInterpolant/parenReference
Query coordinates input arrays must have the same size.
Error in interp2 (line 156)
Vq = F(Xq,Yq);
Error in stepFind (line 28)
uCompare=interp2(xInitial,tInitial,uInitial,x,t,"cubic");
What is wrong with the data I'm inputting or is there a better way of achieving this?
0 Comments
Accepted Answer
chicken vector
on 19 Apr 2023
Edited: chicken vector
on 20 Apr 2023
Hard to tell from the information you give, but it looks like you are using vectors as interpolation base, when you have to use matrices, so try do adjust the following to your code:
[xGridInitial, tGridInitial] = meshgrid(xInitial, tInitial);
uCompare = interp2(xGridInitial, xGridInitial, uInitial, x, t, "cubic");
Read interp2 documentation about this, but xGridInitial, tGridInitial and uInitial must have same size.
More Answers (0)
See Also
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!