Форум кафедры Техники и Электрофизики Высоких Напряжений

Онлайн-сообщество ТВНщиков
Гостям форума:

Добро пожаловать на форум по технике высоких напряжений!
Для получения доступа ко всем разделам необходимо зарегистрироваться


Текущее время: 16 окт 2019, 08:59

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 24 апр 2013, 14:07 
Не в сети
Аватара пользователя

Зарегистрирован: 12 сен 2012, 09:13
Сообщения: 75
Откуда: Москва
В этой теме студенты группы Э-04-10 продолжают познавать среду MATLAB посредством разбора контрольной работы от не помню какого числа.
Как только закончу печь пирожки - выложу свой вариант (не пирожков, контрольной), а пока приглашаю сделать это (не пирожки, а выложить контрольную) других студентов.

_________________
он же Рассол, Совтол, Бензол и ещё 9000 технических жидкостей...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 24 апр 2013, 14:33 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4285
Откуда: Д-3
О, а я уже начал скучать по этому особому стилю общения ))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 24 апр 2013, 18:01 
Не в сети
Неунывающая
Аватара пользователя

Зарегистрирован: 19 окт 2009, 13:48
Сообщения: 852
Откуда: Д-3
+1 :waahaa:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 24 апр 2013, 18:54 
Не в сети

Зарегистрирован: 26 сен 2009, 19:10
Сообщения: 26
Задание в студию! А то мне тоже интересно стало :yippee:

Да и пирожки тоже приветствуются :-)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 24 апр 2013, 19:26 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
konstantinov90 писал(а):
Задание в студию! А то мне тоже интересно стало :yippee:

Соскучился по простым заданиям? :lol:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 24 апр 2013, 20:48 
Не в сети
Аватара пользователя

Зарегистрирован: 12 сен 2012, 09:13
Сообщения: 75
Откуда: Москва
итак, задание варианта 2 (пирожки будут позже)

1. Создать магическую матрицу А размером 7 на 7.
2. Найти сумму каждого второго элемента матрицы А.
3. Записать выражение, вычисляющее произведение элементов матрицы.
4. Построить график, на который нанести значения каждого третьего элемента матрицы (1,3,6,9...) в зависимости от индекса элемента в исходной матрице.
5. Удалить вторую строку матрицы и третий столбец.
6. Создать вектор х из 6 элементов, каждый элемент которого является случайным целым числом в диапазоне от 1 до 30. Изменить полученный массив по следующему правилу: умножить элемент на -1, если его значение является простым целым числом. Отсортировать х по возрастанию.
7. Создать вектор у по правилу, описанному в предыдущем пункте. Отсортировать у по убыванию.
8. Построить на новом рисунке кривую в пространстве, где координата z - максимальные значения в строках матрицы А. Оформить график: нанести линии сетки, заголовок графика, подписи к осям.
9. Записать выражение. с помощью которого можно получить элементы на главной диагонали прямоугольной матрицы произвольного размера.

_________________
он же Рассол, Совтол, Бензол и ещё 9000 технических жидкостей...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 24 апр 2013, 21:14 
Не в сети
Эдуард Аристархович
Аватара пользователя

Зарегистрирован: 03 сен 2008, 15:24
Сообщения: 103
Тосол писал(а):
4. Построить график, на который нанести значения каждого третьего элемента матрицы (1,3,6,9...) в зависимости от индекса элемента в исходной матрице.

А разве первый элемент матрицы относится к "каждому третьему"?

P.S. Я вам форум выделил для пирожков: Программное обеспечение в ЭЭ


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 24 апр 2013, 22:00 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Таково авторское прочтение! :-P


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 29 апр 2013, 14:21 
Не в сети
Аватара пользователя

Зарегистрирован: 12 сен 2012, 09:13
Сообщения: 75
Откуда: Москва
Итак, что я накодил и почему получил за это 2,4

1) Создать магическую матрицу А размером 7 на 7.
Код:
A=magic(7);

Ну тут было сложно ошибиться.
2) Найти сумму каждого второго элемента матрицы А.
Тут я не знал как уместить всё в одном выражении, пришлось цикл писать, хотя подозреваю что можно было и без него обойтись.
Код:
vtor=0;
for k=1:numel(A)
if mod(k,2)=0
vtor=vtor+A(k);
end
end

3) Записать выражение, вычисляющее произведение элементов матрицы.
Код:
prod(prod((A),2));

У меня подчёркнута цифиря "2", наверно её можно было не использовать.
4) Построить график, на который нанести значения каждого третьего элемента матрицы (1,3,6,9...) в зависимости от индекса элемента в исходной матрице.
Занятие по данной теме пропустил, в чём раскаиваюсь.
5) Удалить вторую строку матрицы и третий столбец.
Сначала хотел цикл использовать, потом вспомнил что Матлаб умный.
Код:
A(2,:)=[];
A(:,3)=[];

6) Создать вектор х из 6 элементов, каждый элемент которого является случайным целым числом в диапазоне от 1 до 30. Изменить полученный массив по следующему правилу: умножить элемент на -1, если его значение является простым целым числом. Отсортировать х по возрастанию.
Ну тут матрёшка из циклов получилась, наверняка можно было короче сделать.
Код:
x=randi(30,1,6);
l=0;
p=primes(30);
for l=1:numel(x)
for k=1:numel(p)
if x(l)==p(k)
x(l)=x(l)*(-1);
end
end
end
sort(x)

7) Создать вектор у по правилу, описанному в предыдущем пункте. Отсортировать у по убыванию.
Всё то же самое, только вместо x везде y и последняя строчка выглядит так:
Код:
sort(y,'descend');

8) Построить на новом рисунке кривую в пространстве, где координата z - максимальные значения в строках матрицы А. Оформить график: нанести линии сетки, заголовок графика, подписи к осям.
См. пункт 4.
9) Записать выражение. с помощью которого можно получить элементы на главной диагонали прямоугольной матрицы произвольного размера.
Как говорили раньше, "ниасилил".

_________________
он же Рассол, Совтол, Бензол и ещё 9000 технических жидкостей...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 01 май 2013, 11:03 
Не в сети

Зарегистрирован: 27 сен 2012, 09:57
Сообщения: 76
Kirill, This is how i would have solved the questions. I,however, do not guarantee 100% correctness of my answers. I am subject to correction.

1.Создать магическую матрицу А размером 7 на 7.
Код:
A=magic(7)

2.Найти сумму каждого второго элемента матрицы А.
Without the use of a loop
Код:
sum(A(2:2:end))

3.Записать выражение, вычисляющее произведение элементов матрицы.
Код:
prod(A(:))

4.Построить график, на который нанести значения каждого третьего элемента матрицы (1,3,6,9...) в зависимости от индекса элемента в исходной матрице.
Код:
y=[A(1,1),A(3:3:end)];
x=[1,3:3:numel(A)];
plot(x,y)
grid on
xlabel('Indexes of elements as they appear in Matrix A')
ylabel('Elements in matrix A chosen in the order 1,3,6,9...')
title('Graph of y(x) (see label of x and y for details)')

5.Удалить вторую строку матрицы и третий столбец.
Код:
A(2,:)=[];
A(:,3)=[];

6.Создать вектор х из 6 элементов, каждый элемент которого является случайным целым числом в диапазоне от 1 до 30. Изменить полученный массив по следующему правилу: умножить элемент на -1, если его значение является простым целым числом. Отсортировать х по возрастанию.
Код:
x=randi(30,1,6);
x(isprime(x))= x(isprime(x))*-1; 
sort(x,'ascend')

7. Создать вектор у по правилу, описанному в предыдущем пункте. Отсортировать у по убыванию.
Код:
y=randi(30,1,6);
y(isprime(y))= y(isprime(y))*-1;
sort(y,'descend')

8) Построить на новом рисунке кривую в пространстве, где координата z - максимальные значения в строках матрицы А. Оформить график: нанести линии сетки, заголовок графика, подписи к осям.
Код:
z=max(A,[],2);
y=1:numel(z);
x=1:numel(z);
[X Y]=meshgrid(x,y);
plot3(X,Y,z)
xlabel('rows of matrix A','Rotation',20)
ylabel('projection of rows of matrix A','Rotation',-20)
zlabel('maximum elements in each row')
grid on
title('3D graph of the order of maximum elements in each in row A')

9)Записать выражение с помощью которого можно получить элементы на главной диагонали прямоугольной матрицы произвольного размера.
Код:
step=size(A,1); %where A is a given matrix of any size 
substep=A(1:step+1:end);
if step<length(substep)
diagonal=substep(1:step);
else
diagonal=substep;
end
disp('main diagonal='), disp(diagonal)

_________________
“If you can't fly then run, if you can't run then walk, if you can't walk then crawl, but whatever you do you have to keep moving forward.”


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 01 май 2013, 14:42 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Masha, очень хорошо!
Однако, задания 8 и 9 выполнены неверно. Подумайте ещё.
Замечания:
по заданию 8: зачем meshgrid, если используется plot3?
по заданию 9: "записать выражение" - это должно быть записано в одной строке (всего одно присвоение (знак "=") должно быть).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 01 май 2013, 19:00 
Не в сети
Аватара пользователя

Зарегистрирован: 12 сен 2012, 09:13
Сообщения: 75
Откуда: Москва
Мне кажется, я начинаю понимать.... Вместо циклов лучше использовать двоеточия?

_________________
он же Рассол, Совтол, Бензол и ещё 9000 технических жидкостей...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 17 май 2013, 13:38 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Думал, какие из своих мыслей по поводу задачи с диагональю написать. В итоге умная мысля пришла, и все само собой разрешилось.


dg=a(1:size(a,1)+1:size(a,1)*min(size(a)))

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 18 май 2013, 17:40 
Не в сети

Зарегистрирован: 27 сен 2012, 09:57
Сообщения: 76
Afanasyev писал(а):
dg=a(1:size(a,1)+1:size(a,1)*min(size(a)))


Женя, respect! :hat:

_________________
“If you can't fly then run, if you can't run then walk, if you can't walk then crawl, but whatever you do you have to keep moving forward.”


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 19 май 2013, 16:46 
Не в сети

Зарегистрирован: 27 сен 2012, 13:58
Сообщения: 1
yeah, that's smart женя.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 04 июн 2013, 02:48 
Не в сети

Зарегистрирован: 27 сен 2012, 17:32
Сообщения: 40
Код:
% 1) Создать <S>вечный двигатель</S> магическую матрицу А размером 6х6

A = magic (6)

% 2) Найти среднее арифметическое значение всех чисел матрицы А

mean (A(:)) %(удивительно, но это работает!)

% 3) Записать выражение, вычисляющее сумму четвёртой строки матрицы, каждый
% элемент которой возведен в степень пятнадцатого элемента матрицы

sum (A(4,:).^(A(15)))

% 4) Построить график, на котором нанести значения второго столбца в
% зависимости от индекса элемента в выбранном столбце. Оформить график:
% нанести подписи осей, заголовок, линии сетки.

y = [A(1:end,2)]; 
x = [find(A(1:end,2))];
plot (x,y,'-.R')
axis ([0 6 0 40]); %(установку диапазонов координат можно и не прописывать)
xlabel ('x');
ylabel ('y');
grid on;
title ('Я люблю Matlab z(x,y)')

% 5)Удалить третью строку и второй столбец матрицы А
%(почему нельзя написать clear A(3,1:end) ?-  не знаю.)

A(3,:) = [ ];
A(:,2) = [ ];


_________________
'У плохого студента всегда есть шанс стать хорошим солдатом' © Л.Л. Черненский


Последний раз редактировалось Семён 04 июн 2013, 19:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 04 июн 2013, 03:35 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Семен, а я научился присылать код :woohoo: :bebebe:

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 04 июн 2013, 20:12 
Не в сети

Зарегистрирован: 27 сен 2012, 17:32
Сообщения: 40
Код:
  % 6) Создать вектор X из 5 элементов, каждый элемент которой является
% случайным целым числом в диапазоне от 0 до 20. Измерить полученный
% массив по следующему правилу: сделать элемент отрицательным, если его
% значение-НЕЧЁТНОЕ/ЧЁТНОЕ число. Отсортировать массив X по убыванию.

%вариант а) если его
% значение-НЕЧЁТНОЕ число (сопутствующая задача, которая умножает НЕчётное число на (-1) )

X = randi ([0 20],1,5)
l = find (mod (X,2))
X(l) = X(l)*(-1)
sort (X,2,'descend')

%вариант б) если его
% значение-ЧЁТНОЕ число ( задача, которая умножает ЧЁтное число на (-1) - с участием логического "НЕ" )

X = randi ([0 20],1,5)
l = find (not(mod (X,2)))    ( -строка, которая заставляет задуматься о жизни,о дальнейшем обучении в ВУЗе...)
X(l)=X(l)*(-1)
sort(X,2,'descend')

% 7) Создать вектор Y по правилу в предыдущем пункте. Отсортировать Y по
%возрастанию.

Y = randi  ([0 20],1,5)
l = find (not(mod (Y,2)))       
Y(l) = Y(l)*(-1)
sort (Y,2)


_________________
'У плохого студента всегда есть шанс стать хорошим солдатом' © Л.Л. Черненский


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 05 июн 2013, 00:06 
Не в сети

Зарегистрирован: 27 сен 2012, 17:32
Сообщения: 40
Код:
 
% 8) Построить на новом рисунке поверхность z = f(x,y) где значения z -
% значения матрицы А, отсортированные по убыванию(по столбцам). Оформить график: нанести
% линии сетки, заголовок графика, подписи к осям. (Присутствует ошибка, потому как в графическом окне выводится не поверхность z(x,y), а набор разноцветных палочек.)

figure;
colorbar;
colormap (Cool);
[x1,y1] = meshgrid (A);
z1 = meshgrid (sort (A,1,'descend'))  (ошибка, возможно, в этой строке)
plot3 (x1,y1,z1)
xlabel('x','Rotation',35);
ylabel('y','Rotation',-35);
zlabel('z');
title ('График z = f(x,y)');



или
z1 = meshgrid (sort (A,1,'descend'));
mesh (z1)

_________________
'У плохого студента всегда есть шанс стать хорошим солдатом' © Л.Л. Черненский


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Э-04-10, Matlab, контрольная
СообщениеДобавлено: 06 июн 2013, 02:10 
Не в сети
Аватара пользователя

Зарегистрирован: 05 июн 2013, 21:17
Сообщения: 1
Задача № 6 вчерашней уже контрольной работы(к сожалению, точного условия не помню, напишу своими словами)

Из матрицы а, размером 5*6, элементы которой лежат в интервале от -30 до 30 создать вектор-столбец, каждое значение которого равно квадратному корню из суммы трех последовательно идущих элементов матрицы а

a=randi([-30 30],5,6)
b=reshape(a(:),3,10)
c=sum(b)'


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB