2017-02-20 5 views
0

Я пытаюсь построить фигуру с использованием трех матриц, но почему-то я не мог понять. У меня три матрицы и массив. Предположим,Как построить 2D-график в MATlab из трех матриц и массива?

A = 

    1  2  3 

    4  5  4 

    7  8  9 

B = 

    2  3 13 

    5 11 10 

    9  7  6 


C = 

    1  2  3 
    2  3 13 
    5 11 10 

и массив

Y= [0.001 0.0002 0.0004]. 

Теперь я хочу построить его таким образом, что значения массива должны находиться на оси у, а против 0,001, 0,002 и 0,0004 значение матрицы должны быть расположены , для примеров, y=0.001, A(1,1)=1, y=0.0002, B(1,1)=2 y=0.0004, C(1,1)=1 для одной строки.

и аналогичным образом идет для A(i,j),B(i,j) и c(i,j) точек с использованием цикла для построения всех линий на одной фигуре.

Благодаря

+1

Ваш вопрос очень запутан. Можете ли вы попытаться перефразировать его, пожалуйста? –

+0

@AnderBiguri У меня есть три матрицы и массив, как показано выше. Теперь я хочу построить его таким образом, чтобы эти три значения массива (0,001, 0,0002, 0,0004) были на оси y и по оси x, первое значение матрицы A должно быть построено по отношению к 0,001 значению массива и первое значение матрицы B должно быть построено по отношению к второму значению массива, которое равно 0,0002 и аналогично для третьего значения. –

+0

Не понимаю. Для чего я, я? оси x, y? Вы хотите построить все значения A против 0,001, все значения B против 0,0002 и все значения C в 0,0004? А затем соедините все пары (i, j)? – ana

ответ

1

Таким образом, первый участок plot([1,2,1],Y), следующий один plot([2,3,2],Y) и так далее?

Если да, то вы могли бы сделать это как то

X = cat(3,cat(3,A,B),C); 
X = reshape(permute(X,[3,1,2]),3,9); 
plot(X,Y,'--x'); 

, который дает сюжет так:

Resulting plot

это то, что вы искали? Если нет, я не очень хорошо понимаю ваш вопрос, и я хотел бы попросить вас перефразировать его.

0

Вы можете создать 3D-массив (тензор) и получить доступ к нему в цикле.

T(:,:,1) = A; 
T(:,:,2) = B; 
T(:,:,3) = C; 

figure; 
for idi = 1:size(A,1) 
    for idj = 1:size(A,2) 
     plot(squeeze(T(idi,idj,:)).',Y); hold on; 
    end 
end 

Доступ третьего измерения не быстрые операции (так как они не являются последовательным магазином в памяти) и если матрицы больше, вы могли бы рассмотреть reshape.

Я не понял, что вы хотите, чтобы вектор Y находился на оси x или оси y (и ни один из этих сюжетов не имеет для меня смысла), но я уверен, что вы можете изменить код здесь для ваших нужд.

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