Matlab: можно ли автоматически менять метки осей изображения, чтобы они соответствовали моим данным? - PullRequest
0 голосов
/ 28 марта 2019

Я экспериментирую с использованием функции imagesc, потому что мне нужно сделать двухмерную цветную диаграмму трехмерных данных, где цвет указывает силу выходного сигнала для каждой комбинации из 2 входов, а оси x и y должны представлять входные параметры. Я посмотрел на этот вопрос, который похож: Как изменить метки оси изображения

Проблема в том, что я не знаю заранее диапазон значений, которые будут иметь мои входные параметры, и они не обязательно должны быть «хорошими», «круглыми» числами, которые могут быть разделены 10 или каким-то другим целым числом , Хуже того, в зависимости от теста, который я делаю, мои данные могут иметь инвертированный порядок входов. Например, если я вручную установлю ось x, чтобы переходить от низких к высоким значениям (как стандартно), это может фактически быть обратным от того, как мои данные на самом деле, если мои значения параметров вводились от высокого к низкому.

пример моего выходного изображения с использованием функции imagesc

Я включил пример изображения, которое я получил до сих пор. Ось Y была оставлена ​​по умолчанию, что просто показывает, что у меня более 180 строк в матрице моего выходного сигнала. Я изменил ось X с помощью linspace, чтобы соответствовать диапазону входных параметров от минимального до максимального значения. Тем не менее, изображение должно быть перевернуто горизонтально, потому что я знаю, что желтое пятно справа должно соответствовать низким значениям на оси х - то есть оно должно быть на левой стороне.

Поэтому мне нужно, чтобы это произошло автоматически, чтобы сила моего выходного сигнала была правильно согласована с комбинацией из 2 входных параметров (которые показаны на осях x и y), а выход для каждой комбинации представлен как цвет по цветовой гамме.

Нет ли способа сделать это с помощью imagesc? Должен ли я использовать функцию pcolor вместо этого? Или есть какой-то другой подход?

1 Ответ

0 голосов
/ 07 июля 2019

Используя функцию pcolor, я получил то, что хотел. Он напрямую переводит интуитивные отношения между (матричными) переменными в графическое изображение с правильными масштабами оси. У меня было 3 переменные; давайте назовем их f, H и Z. Задача состояла в том, чтобы создать цветной график со значением от Z, которое соответствует каждой уникальной паре значений f, H, аналогично координате x, y. Итак, я превратил f и H в матрицы (с одинаковыми размерами), где f имеет все столбцы, являющиеся копиями одного вектора столбца, а H имеет все строки, являющиеся копиями одного вектора строки. (Z уже была матрицей с одинаковыми размерами.) Таким образом, если я выберу элемент i, j из обеих матриц f и H, я получу уникальную пару f, H и могу сопоставьте его с элементом i, j в Z. Затем просто построите график, используя:

pcolor(f,H,Z)

И я получаю такое изображение (с несколькими дополнительными командами): f, пример H цветного графика

Метки номеров осей настраиваются автоматически в соответствии со значениями f и H.

...