2014-11-27 1 views
-2

Я хочу построить текстовый файл с 4 столбцами, первый столбец по долготе, второй по широте, третий - это глубина и вперед, это объем перемещения в каждой точке (это связано с fualt)построение текстового файла с 4 столбцами в matlab

-114,903874 41,207504 1,446784 2,323745

Я хочу, чтобы участок, чтобы показать величину смещения в каждой точке (например, изображения, которые мы наносим с imagesc), к сожалению, команда «imagesc» не работает для него.

Как это сделать? Спасибо за внимание

+0

Ваша проблема непонятна для меня. Могли бы вы уже прочитать содержимое текстового файла в MATLAB? Как именно вы хотите построить смещение? – hbaderts

+0

Да, я импортирую текстовый файл в matlab с помощью команды importdata.Я хочу показать смещение с различиями в цвете на карте (использовать цветную панель), могу ли я использовать команду контура для построения длинной, лат, глубины, а затем добавить столбец с другой командой ? –

+0

Вы можете использовать контур для построения длинной, лат, глубины. Но как бы вы хотели добавить смещение? Цвета в контуре указывают значения z (в вашей глубине корпуса). Вы можете создать 3D-график длинной, лат, глубины, используя plot3, и изменить цвет каждой точки в зависимости от перемещения. – hbaderts

ответ

2

Простой способ будет использовать scatter3 и назначить смещения быть цвета. Обратите внимание, что вам нужно указать размер для этого - я использую [] (пустая матрица), которая установит его по умолчанию. Если четыре набора значений четыре вектора одного и того же размера, то это просто что-то вроде:

scatter3(lat,lon,depth,[],displacement, 'filled') 

Значения в displacement будут линейно сопоставляется с текущей палитрой. 'filled' дает вам заполненные маркеры, а не открытые (маркер по умолчанию - это круг, но его можно изменить).

+0

Уважаемый nkjt, Спасибо за ваш комментарий, это то, что мне нужно :) Спасибо, действительно, –

0

Вы можете построить каждую точку, используя plot3(longitude,latitude,depth). Вы можете покрасить каждую точку в соответствии с перемещением в цикле for. Самый простой способ сделать это - создать цветную карту, например. используя jet и выбирая цвет в соответствии с перемещением.

figure; 
hold on; 
cmap = jet(256); 
dispRange = [min(displacement),max(displacement)]; 
for k=1:size(longitude,2) 
    c = cmap(1+round(size(cmap,1)*(displacement(k)-dispRange(1))/dispRange(2)),:); 
    plot3(longitude(k),latitude(k),depth(k),'o', ... 
     'MarkerEdgeColor',c,'MarkerFaceColor',c); 
end 
+0

Уважаемый hbaderts, Спасибо за внимание, я, конечно, изучу то, что вы сказали –

+0

Это полностью подход, который я бы сделал ... пока я не узнал о команде 'scatter3' в ответе @nkjt. Я никогда не использовал 'scatter3', но он отлично выглядит. Если это почему-то не работает, этот ответ от @hbaderts тоже хорош. – chipaudette

Смежные вопросы