Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6

Создание графиков в цикле

30.08.2015, 23:32. Показов 3735. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Совсем недавно пришлось осваивать Matlab, поэтому вопрос совершенно глупый, однако в гугле найти ответа не удалось.

Задача: Построить 10 графиков и сохранить их.
Проблема: Не могу заставить Матлаб открыть в цикле нужную матрицу. Т.е. у меня есть 10 матриц 5x5, по которым строиться график поверхности: Z1,Z2,Z3,...,Z10. Они все объявлены в самом начале кода. Прорисовываю это чудо я командой surf(X,Y,Z), где Х, У - не измены для всех графиков. Но в цикле не могу объяснить Матлабу, что для прорисовки нужно использовать Zi матрицу. Вопрос тупо в синтаксисе, как я понимаю. Прощу прощения за совершенно идиотский вопрос, но ответ найти очень нужно, а дедлайн сильно поджимает.


Сам цикл:

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for i=1:10 
    
    
    surf(X,Y,Z(i)) %проблема возникла вот сдесь
    
    str = ['График зависимости мощности уровня радиосигнала от координат помещения на частоте',' ', num2str(Zi_title),' ', 'МГц'] ;
    title(str)
    xlabel('Ширина помещения,м');
    ylabel('Длинна помещения,м');
    zlabel('Уровень сигнала');
    zlim([0 3]);
    xlim([0 5.5]);
    ylim([0 12]);
    grid on
    axis square
end
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.08.2015, 23:32
Ответы с готовыми решениями:

Построение графиков в цикле
всем доброго времени. пожалуйста помогите!! необходимо выводить графики в цикле на одну фигуру., а потом добавить легенду. в общем все...

Рисование графиков в цикле
Доброго времени суток. В цикле получаю на каждой итерации некоторые значения (точки) и сразу же их строю. Подскажите пожалуйста, как...

Вывод и суммирование графиков в цикле
Добрый день всем! Нужна ваша помощь. Пишу программу по обработке изображений. Необходимо создать цикл: есть некоторое изображение...

10
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
30.08.2015, 23:34
Fomka16, дайте код,по которому можно получить Z.

Не по теме:

Правильно писать здесь,а не сдесь.

0
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6
30.08.2015, 23:39  [ТС]
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Z1=dlmread('1.txt','\t');
Z2=dlmread('2.txt','\t');
Z3=dlmread('3.txt','\t');
Z4=dlmread('4.txt','\t');
Z5=dlmread('5.txt','\t');
Z6=dlmread('6.txt','\t');
Z7=dlmread('7.txt','\t');
Z8=dlmread('8.txt','\t');
Z9=dlmread('9.txt','\t');
Z10=dlmread('10.txt','\t');
 
X=[0 1 2 3 4 
   0 1 2 3 4 
   0 1 2 3 4 
   0 1 2 3 4 
   0 1 2 3 4];
Y=[0 0 0 0 0 
    2 2 2 2 2 
    4 4 4 4 4 
    6 6 6 6 6 
    8 8 8 8 8];
Вложения
Тип файла: rar Graph.rar (3.2 Кб, 3 просмотров)
0
 Аватар для Norwall
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
31.08.2015, 13:47
Fomka16, что-то типа этого:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
clc, clear all, close all
 
Z1=dlmread('1.txt','\t');
Z2=dlmread('2.txt','\t');
Z3=dlmread('3.txt','\t');
Z4=dlmread('4.txt','\t');
Z5=dlmread('5.txt','\t');
Z6=dlmread('6.txt','\t');
Z7=dlmread('7.txt','\t');
Z8=dlmread('8.txt','\t');
Z9=dlmread('9.txt','\t');
Z10=dlmread('10.txt','\t');
Z = [Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10];
 
X=[0 1 2 3 4 
   0 1 2 3 4 
   0 1 2 3 4 
   0 1 2 3 4 
   0 1 2 3 4];
Y=[0 0 0 0 0 
    2 2 2 2 2 
    4 4 4 4 4 
    6 6 6 6 6 
    8 8 8 8 8]; 
% [X,Y] = meshgrid(X,Y);
 
for i = 1:10
    k = repmat(Z(:,i),1,5);
    figure();surf(X,Y,k);
end
1
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6
31.08.2015, 16:54  [ТС]
К сожалению, не сработало. В матрице k получается 50 копий 1го столбца.
0
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,464
31.08.2015, 17:45
Лучший ответ Сообщение было отмечено Fomka16 как решение

Решение

а если так?
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clc, clear all, close all
 
X=[0 1 2 3 4 
   0 1 2 3 4 
   0 1 2 3 4 
   0 1 2 3 4 
   0 1 2 3 4];
Y=[0 0 0 0 0 
    2 2 2 2 2 
    4 4 4 4 4 
    6 6 6 6 6 
    8 8 8 8 8]; 
 
for i = 1:10
    namefile=strcat(num2str(i),'.txt');
    Z=load(namefile);
    figure();
    surf(X,Y,Z);
end
1
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6
31.08.2015, 18:06  [ТС]
Спасибо большое, работает. Всё настолько просто, что аж стыдно от моих конструкций. Сказывается большой пробел в синтаксисе и опыте работы с Матлабом.
0
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,464
31.08.2015, 18:06
если после
Matlab M
1
surf(X,Y,Z);
добавить
Matlab M
1
shading interp
графики будут привлекательнее
1
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6
31.08.2015, 18:33  [ТС]
Подскажите ещё, пожалуйста, как задать название графика в цикле? Необходимо, чтобы график назывался "График зависимости мощности уровня радиосигнала от координат помещения на частоте x МГц", но не могу прикрепить "х" к циклу.С функцией strcat не выходит. Пытаюсь сделать вот так:

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
%Частоты, которые необходимо указать в название
Z1_title=99.2;
Z2_title=99.6;
Z3_title=100.9;
Z4_title=102.1;
Z5_title=102.5;
Z6_title=103.0;
Z7_title=104.2;
Z8_title=105.7;
Z9_title=106.2;
Z10_title=107.0;
 
 
for i = 1:10
    namefile=strcat(num2str(i),'.txt');
    Z=load(namefile);
    figure();
    surf(X,Y,Z);
 
    shading interp
 
    x=??
    str = ['График зависимости мощности уровня радиосигнала от координат помещения на частоте',' ', num2str(x),' ', 'МГц'] ;
    title(str)
    xlabel('Ширина помещения,м');
    ylabel('Длинна помещения,м');
    zlabel('Уровень сигнала');
    zlim([0 3]);
   %xlim([0 5.5]);
   %ylim([0 12]);
    grid on
    axis square
end
0
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,464
31.08.2015, 18:41
Лучший ответ Сообщение было отмечено Fomka16 как решение

Решение

лучше так...
вначале
Matlab M
1
2
%Частоты, которые необходимо указать в название
Ztitle=[99.2 99.6 100.9 102.1 102.5 103.0 104.2 105.7 106.2 107.0];
тогда в теле цикла
Matlab M
1
2
str = ['Мощность уровня радиосигнала на частоте',' ', num2str(Ztitle(i)),' ', 'МГц'] ;
    title(str);
2
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 6
31.08.2015, 18:55  [ТС]
Спасибо, работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.08.2015, 18:55
Помогаю со студенческими работами здесь

Построение и сохранение графиков в цикле
Всех приветствую. Такой вот вопрос. Имеется энное кол-во векторов с именем result1,result2...resultN. Цель построить соответствующие этим...

Построение графиков в цикле
Имеется матрица. Нужно построить отдельно столько графиков, сколько строк в матрице. Пытаюсь делать таким образом: For,k++, ListPlot]] ...

создание графиков
Нарыл в интернете такой код <?php // Standard inclusions include("pChart/pData.class"); ...

Создание графиков
всем добрый день, подскажите пожалуйста как можно рисовать графики в C#? Пишу программу по типу Mind Map, которая будет считать линии И так...

Создание графиков
Помогите пожалуйста сделать так чтобы по нажатию кнопки создавался графики функции на котором было бы 2 функции. Данный код просто создает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru