Как сделать так, чтобы цвет обозначал амплитуду на ленте Matlab? - PullRequest
3 голосов
/ 17 декабря 2011

Функция Matlab ribbon отображает мою матрицу в виде цветных лент, где номер ленты и ее точка на карте соответствуют индексам строки и столбца матрицы, а высота ленты - значениям элемента. Каждая лента имеет свой цвет.

Я ищу функцию, которая создает график, подобный этому, но где цвет указывает высоту ленты, то есть значения в матрице, аналогично тому, что делают surf и waterfall. (Удаление черных контурных линий также было бы аккуратным.) Как мне этого добиться?

matlab ribbons

Ответы [ 3 ]

2 голосов
/ 29 июня 2016

ribboncoloredz.m просто делает это.

[x,y] = meshgrid(-3:.5:3,-3:.1:3);
z = peaks(x,y);
ribboncoloredZ(y,z);
xlabel('X');ylabel('Y');zlabel('Z');

example

0 голосов
/ 26 мая 2014

Та же проблема, мое решение состояло в том, чтобы сделать мою собственную функцию из встроенной:

Откройте "ribbon.m" в редакторе: отредактируйте ribbon.m

Сохраните его там, где вы хотите, под другим именем, например ribbonColAmpl.m

Строка 46 удаляет поверхностный аргумент «n * cc» перед «parent». Это то, что контролирует фиксированный цвет сцепленных поверхностей.

Сохраните файл и используйте эту новую функцию вместо оригинальной: Вуаля!

0 голосов
/ 17 декабря 2011

Оказывается, того же эффекта можно добиться, используя waterfall:

h = waterfall(data);
set( h, 'LineWidth', 4 );
hidden off;

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...