В нашето приложение трябва понякога да начертаваме контурни линии от geoshow() върху други повърхностни графики geoshow(). За да ги направим видими, трябва да ги повдигнем по Z с няколко единици. Можем да намерим ZData за контурните линии, но когато се опитаме да го променим, получаваме това съобщение за грешка

„Недостатъчен брой изходи от функция от дясната страна на знака за равенство, за да се удовлетвори претовареното присвояване.“

Обаждането geoshow(), което използваме, е това.

A = geoshow(latMat2, lonMat2,  newRain2, 'DisplayType', 'contour', 'linewidth', 1.0);

След като се изпълни горната команда, можем да видим ZData (всички нули) с това

A.Children(:).ZData

Опитваме се да разменим нови стойности на ZData с това

A.Children(:).ZData = 8;

и получавате горепосоченото съобщение за грешка.

Очевидно правим нещо нередно, но не знаем какво е то.

ЗАБЕЛЕЖКА:-

Matlabsolutions.com предоставя най-новата MatLab Homework Help, MatLab Assignment Help за студенти, инженери и изследователи в множество клонове като ECE, EEE, CSE, Mechanical, Civil със 100% резултат. Matlab Code for B.E, B.Tech ,M.E,M.Tech, Ph.D. Учени със 100% гарантирана поверителност. Вземете MATLAB проекти с изходен код за вашето обучение и изследвания.

Имах подобен проблем, опитвайки се да насложа вградената карта на „състояния“ върху моя 3D повърхностен график. Вашият въпрос ми помогна да реша проблема си, така че се надявам да мога да бъда полезен.

Първоначалната ми формулировка беше малко по-различна, тъй като използвах опцията „SymbolSpec“ на функцията geoshow. Все пак мисля, че можете да разрешите проблема си, като присвоите масив на A.Children.ZData вместо скаларен.

C = 8;  %some arbitrary height you want place your map at
A.Children.ZData = C*ones(size(A.Children.XData)));

Мисля, че проблемът беше, че XData, YData и ZData трябва да са с еднакъв размер. Така че просто трябва да създадете масив от всички „8s“ и да го присвоите на ZData.

ВИЖТЕ ПЪЛНИЯ ОТГОВОР, КЛИКНЕТЕ ВЪРХУ ВРЪЗКА