использовать подзаголовок для построения нескольких графиков в Matlab

я не могу понять, в чем причина следующей ошибки? вот код

for i=1:20 
      x(i) = i-10; 
      squared(i) = x(i) ^ 2; 
      cube(i) = x(i) ^ 3; 
      linear(i) = x(i); 
      log_of(i) = log(x(i)); 
      sqrt_of(i) = sqrt(x(i)); 
    end 
    subplot(2,3,1); 
    plot(x,squared); 
    title('square'); 

        subplot(2,3,4); 
    plot(sqrt_of,cube); 
    title('sqrt'); 

    subplot(2,3,5); 
    plot(linear,cube); 
    title('linear'); 

    subplot(2,3,6); 
    plot(log_of,cube); 
    title('log'); 


    subplot(2,3,3); 
    plot(x,cube); 
    title('cube'); 

и ошибка говорит

subplot1
Attempt to execute SCRIPT subplot as a function:
C:\Users\D.Datuashvili\Desktop\subplot.m

Error in subplot1 (line 9)
    subplot(2,3,1);

вроде все нормально в коде, но почему следующая ошибка? не могли бы вы мне помочь? ОТРЕДАКТИРОВАНО:

for i=1:20 
      x(i) = i-10; 
      squared(i) = x(i).^ 2; 
      cube(i) = x(i).^ 3; 
      linear(i) = x(i); 
      log_of(i) = log(x(i)); 
      sqrt_of(i) = sqrt(x(i)); 
    end 
    subplot(2,3,1); 
    plot(x,squared); 
    title('square'); 

        subplot(2,3,4); 
    plot(sqrt_of,cube); 
    title('sqrt'); 

    subplot(2,3,5); 
    plot(linear,cube); 
    title('linear'); 

    subplot(2,3,6); 
    plot(log_of,cube); 
    title('log'); 


    subplot(2,3,3); 
    plot(x,cube); 
    title('cube'); 

ошибка:

 subplot1
Error using plot
Vectors must be the same lengths.

Error in subplot1 (line 10)
    plot(x,squared);

person dato datuashvili    schedule 10.04.2013    source источник


Ответы (2)


Вероятно, в вашей рабочей области есть файл с именем subplot.

person fatihk    schedule 10.04.2013
comment
что такое C:\Users\D.Datuashvili\Desktop\subplot.m ? это собственная функция Matlab или ваш файл? - person fatihk; 10.04.2013
comment
я изменил каталог сейчас, но всякий раз, когда я запускаю, он показывает мне только одну цифру - person dato datuashvili; 10.04.2013
comment
он говорит, что вектор должен быть одинаковой длины, я сделал некоторые изменения и загрузил сейчас - person dato datuashvili; 10.04.2013
comment
x и квадратные массивы имеют разную длину, вы можете попробовать очистить эти переменные, добавив clear all в начало файла m - person fatihk; 10.04.2013
comment
теперь это работает, большое спасибо, так что лучше всегда использовать очистить все при записи М-файла? - person dato datuashvili; 10.04.2013
comment
да, очистка переменных может упростить задачу. Вам также может понадобиться очистить только определенные переменные, и вы можете использовать для этой цели clearvars - person fatihk; 10.04.2013

Как отмечалось выше, первая ошибка чаще всего возникает из вашего файла C:\Users\D.Datuashvili\Desktop\subplot.m, который затеняет значение по умолчанию Matlab.

вторая ошибка связана с тем, что длина массива squared больше, вероятно, потому, что вы изменили его ранее.

просто добавьте следующую строку перед вашим скриптом, и все будет хорошо

 clear squared cube linear log-of sqrt_of
person Arkadi Sim    schedule 15.05.2013