MATLAB для петлевых участков - PullRequest
       4

MATLAB для петлевых участков

0 голосов
/ 07 сентября 2011

У меня быстрый вопрос по созданию простого сюжета в MATlab. Я делал это раньше, но по какой-то причине он перестал работать, и график, который я хочу, больше не появляется.

Я не уверен, сколько информации понадобится для ответа на этот вопрос, поэтому, пожалуйста, дайте мне знать, если мне нужно добавить больше.

У меня есть система ODE, и я использую следующие параметры в цикле в качестве одной из переменных.

A4bar = NaN;
for eta_p = 0.0:.1:7;
A3bar=x(size(t,1),3);
A4bar= [A4bar;A3bar];
hold on
plot(eta_p,A4bar,'-k','linewidth',1);

Когда я использую приведенный выше код, на моем графике появляется множество точек, которые не связаны.

Когда я использую свой оригинальный код, который работал в прошлом, я использовал это.

A4bar = NaN;
for eta_p = 0.0:.1:7;
A3bar=x(size(t,1),3);
A4bar= [A4bar;A3bar];
place_holder_eta_p = 0:.1:7.1;
hold on
plot(place_holder_eta_p,A4bar,'-k','linewidth',1);

Ошибка, которую я получаю для моего исходного кода, состоит в том, что векторы не равны. Я попытался установить place_holder_eta_p в соответствие с eta_p, но это не сработало. Раньше он работал только с приведенным выше кодом, поэтому я не уверен, что происходит.

Есть идеи или предложения? Может быть, более важно, дайте мне знать, если есть какая-либо дополнительная информация, которую я должен предоставить.

Спасибо всем.

1 Ответ

2 голосов
/ 07 сентября 2011

Я подозреваю, что вам не нужен цикл for, чтобы делать то, что вы хотите.На самом деле, именно потому, что вы изображаете каждую отдельную точку как отдельный график, вы получаете несвязанные точки на своем графике.В любом случае, вы не показали, как переменная переменная eta_p используется в цикле.

Основная структура вашего кода должна выглядеть следующим образом:

eta_p = 0:0.1:7;
N     = length(eta_p);
A4bar = Zeros(1, N);       % same length as eta_p
% set up your other variables

% calculate the values in A4bar
% it might look like
% for i = 1:length(eta_p)
%     A4bar(i) = interesting_function(eta_p(i), A3bar, x, t);
% end

plot(eta_p, A4bar, '-k', 'linewidth', 1);

Я не знаю, как настроить другие переменные A3bar, x, t, и я не могу сказать, что вам нужно в этом среднем разделе, чтобы вычислить значения A4bar без какой-либо дополнительной информации.

Важно отметить, что

  1. eta_p и A4bar имеют размер [1 N] (требуется для команды plot)
  2. *Команда 1022 * выполняется один раз вне любого цикла, а не внутри него, и после того, как вы вычислили все значения A4bar.
...