Matlab выводит значение, на которое ссылаются другие 2 значения

#matlab #plot #matlab-figure #colorbar #colormap

#matlab #построение графика #matlab-рисунок #цветная панель #цветовая карта

Вопрос:

На каждой итерации я получаю эти значения. Например;

a равно 2, b равно 3, gg(a, b) равно 70

a равно 2, b равно 4, gg(a, b) равно 72

a равно 2, b равно 5, gg(a, b) равно 76

Я хочу отобразить их на одном графике, например, «a» по осям x, «b» по осям y, а gg (a, b) — это значение, на которое ссылаются a и b. Я также хочу показать значения gg (a, b) в цветовой карте. Я пытался, но пока не достиг. Не могли бы вы помочь, пожалуйста? Вот что я пробовал. Я не хочу 3d, но не знаю, как строить график. Допустим, gg — это матрица, состоящая из 20 столбцов и 5 строк.

 gg=rand(5,20);
   for a=1:5
    for b=1:20
      hold on
      scatter3(gg(a,b),a,b)
      xlabel('gg(a,b)'), ylabel('a'), zlabel('b')
      colormap(jet)
      view(3)
    end
  end
  

Комментарии:

1. Пожалуйста, покажите, что вы пробовали, чтобы мы могли помочь указать, что вы делали неправильно.

2. Я добавил код. @tmpearce

Ответ №1:

Вот (более простой) код для обоих:

 gg = rand(5,20);
[a,b] = ndgrid(1:5,1:20);
figure
scatter(a(:),b(:),[],gg(:))
colormap(jet)
xlim([0 6])
xlabel('a')
ylabel('b')
colorbar
figure
colormap(jet)
imagesc(1:5,1:20,gg.')
xlabel('a')
ylabel('b')
axis xy
colorbar
  

что создает:

разброс
цветовая карта

Комментарии:

1. Спасибо за ваш ответ, но я этого не хочу. Я хочу, чтобы значения gg (a, b) были видны на графике. Например; Я не вижу, что gg (1,2) находится на графике. В этом примере все мои значения gg (a, b) находятся в диапазоне от 0 до 1. Я хочу показать значения gg (a, b) с цветами. Кроме того, я хочу поместить цветовую панель, чтобы я мог понять, что значения gg (a, b) соответствуют цвету.

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

3. @DenizBaturay Прямо сейчас моя MATLAB занята симуляцией, когда она завершится (через ~ 36 часов), я обновлю ответ с более подробной информацией.

4. Спасибо за ответ и комментарий. Я добавил цветную панель и решил проблему. Спасибо 🙂

5. @EBS На втором графике оси y начинаются с 20 до 1, но оно должно быть от 1 до 20. Результаты верны, когда оно равно от 1 до 20.

Ответ №2:

Я думаю, что это должно быть gg=rand(5,20);

Комментарии:

1. Нет, это должно быть gg = rand(20,5) .

2. Да, но у b есть 5 для ограничения, и вы устанавливаете его на 20 в своем цикле. Так что, возможно, переключите b и a в своих циклах.