Построение графика из интерполированных данных

У меня есть матрица 6x7 и коды, как показано ниже.

AAA = [6.58334819836268e-08,6.58360422229042e-08,1.00000000000000e-07,6.58360422229042e-08,6.58334819836268e-08,6.52045800754157e-08,5.85884775603342e-08;6.58357144702898e-08,7.07877183955584e-15,1.30107757091448e-14,7.07877183955584e-15,6.58357144702898e-08,6.54972575310103e-08,5.93117733834096e-08;6.58339625800589e-08,3.11222470705387e-14,1.00000000000000e-07,3.11222470705387e-14,6.58339625800589e-08,6.53071149110581e-08,5.91467960666378e-08;3.35180697959755e-14,1.23401983330586e-13,3.16992910945127e-07,1.23401983330586e-13,3.35180697959755e-14,6.42575733502040e-08,5.51860031243273e-08;2.60334109648121e-14,3.15652463329506e-13,3.06020237241310e-07,3.15652463329506e-13,2.60334109648121e-14,6.13091171475941e-08,4.67547677521445e-08;1.34421509504861e-13,3.68888581036477e-13,2.99436633019020e-07,3.68888581036477e-13,1.34421509504861e-13,5.41463382985084e-08,3.24989206785054e-08];

[xx,yy] = meshgrid(0:71:426,0:71:355);

mesh(xx,yy,AAA)

График можно построить, запустив приведенный выше код без каких-либо проблем. Однако, когда я интерполировал его, как показано ниже, произошла ошибка, и график не может быть показан. Что я сделал не так? Помоги мне, пожалуйста.

[xxx,yyy] = meshgrid(0:1:426,0:1:355);

InterpAAA = interp2(xx,yy,AAA,xxx,yyy);

mesh(xxx,yyy,InterpAAA)

person Yossiri    schedule 21.02.2014    source источник
comment
Какая ошибка? У меня нормально работает? Matlab 2013a, x64, xubuntu 13.10.   -  person Marcin    schedule 21.02.2014
comment
Согласен, код выглядит правильно. Вы уверены, что ваш interp2 не выдает ошибку? Возможно, ваш xx не упорядочен?   -  person Dan    schedule 21.02.2014
comment
Спасибо за помощь. Мой неудачный график выглядит так. dl.dropboxusercontent.com/u/153995/untitled.tif Знаете ли вы какова причина?   -  person Yossiri    schedule 21.02.2014
comment
Matlab 2013a, x64, OS X 10.9.1   -  person Yossiri    schedule 21.02.2014


Ответы (1)


Это может быть связано с графическими ограничениями вашей системы. Ваш код у меня тоже не сработал (Maverick IMac 2012b), но сработало следующее

mesh(xxx, yyy, InterpAAA*100) %multiply the data by 1e2 - OK
mesh(xxx, yyy, InterpAAA*10) %multiply the data by 1e2 - NOT OK

Я думаю, это может быть связано с методом рендеринга. Вы можете попробовать вызвать set(gcf,'renderer','paint');. На моей машине работает, но очень медленно.

person marsei    schedule 21.02.2014
comment
Большое спасибо Макдуф. Как и у вас, у меня работает, если я умножаю это. - person Yossiri; 22.02.2014