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

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

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


Текущее время: 16 окт 2019, 07:44

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




Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 03 июн 2013, 21:40 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Что ж, тогда оставлю так. У меня не работал, потому что у меня в ячейках были вектора-столбцы, а не строки.
А можно было бы как-то в самих ячейках преобразовать их в вектора-строки? Хотел попробовать reshape, но так не получится...

_________________
Rise and rise again, until lambs became lions.


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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Код:
%№1
%Задаемся m и n
a=randi([0 100],m,n)
num_prime=sum(isprime(a))

%N3
sr=mean(a(:))
k=abs(a-sr)
[rows cols]=find(k==min(k(:)))

%N4
b=randi([0 100],6,8)
pb_dg=b(size(b,1):size(b,1)-1:size(b,1)*min(size(b))-1)

%N5
y1=@(x) x;
y2=@(x) -x;
figure
hold on
fplot(y1,[0 3]);
fplot(y2,[-3 0]);
xlim([-3 3]) %для того, чтобы отображались оба графика. Без этой строки он почему-то  показывает только последний график

%N6
summa=sum([c{:}])

%N7
y1=@(x) x^2-1-(x^3+1)^(1/2)
fzero(y1,-1)
fzero(y1,1.95)


Леонид Леонидович, будьте добры, проверьте пожалуйста 3 5 6 7, как будет возможность.

_________________
Rise and rise again, until lambs became lions.


Последний раз редактировалось Afanasyev 04 июн 2013, 13:21, всего редактировалось 1 раз.

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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Анна писал(а):
И еще совет, если не работает, то нужно проанализировать, как Matlab читает Ваш код. Откиньте все до минимума, начинайте с простейшего выражения, а затем постепенно усложняйте его. При этом всегда строго анализируйте, какие выходные данные Вы получаете, какие Вам нужны, и как с ними можно работать дальше. Вскоре Вы поймете логику этой шайтан-машины )) :hat:

Про шайтан-машину порадовало :-D

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 04 июн 2013, 12:47 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Afanasyev писал(а):
Леонид Леонидович, будьте добры, проверьте пожалуйста 3 5 6 7, как будет возможность.

Правильно, похоже.
Кроме 7-го пункта. Мы проходили символьные переменные и вычисления? Не было у нас в лекциях функции solve.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 04 июн 2013, 13:17 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4285
Откуда: Д-3
А fsolve была? Думаю, что они ее имеют в виду.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 04 июн 2013, 13:21 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Было fzero, я хотел через эту функцию сделать...
Хотя, вот. Исправил 7

_________________
Rise and rise again, until lambs became lions.


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

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
вот последняя.. вторая..
Код:
files=dir
k=[files.date]
fn=ceil(strfind(k,'май')/20)
d={files(:).name}
d{fn}

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 05 июн 2013, 09:32 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Да. правильно.
Вот ещё один способ, но я вам его пока ещё не показывал.
Код:
files=dir;
files(~cellfun(@(x)isempty(strfind(x,'май')), {files.date})).name
% или даты для проверки
% files(~cellfun(@(x)isempty(strfind(x,'май')), {files.date})).date


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 06 июн 2013, 14:45 
Не в сети

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

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 06 июн 2013, 17:01 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Можно вопрос?
Почему при a(i)>18, преждевременный выход из цикла не срабатывает? Я, конечно, нашел функцию break, но все же интересно.
Код:
for i=1:length(a)
if a(i)<18
    disp(a(i))
else i=length(a);
end
end

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 06 июн 2013, 18:30 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
У меня такая конструкция "срабатывает"! :rofl:
Как проверяли?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 06 июн 2013, 18:32 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Afanasyev писал(а):
Трудноватый на понимание способ :-)

А кто сказал, что будет легко? Обратите внимание на то, как коротко эта конструкция выглядит.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 06 июн 2013, 22:12 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Leonid писал(а):
У меня такая конструкция "срабатывает"! :rofl:
Как проверяли?

Ну как... проверил даже пошагово, он приравнивает i=30 (length(a)), затем просто заново переприсваивает i и продолжает цикл.
Версия 2010а, 7.10.0
Странно конечно, во всех языках программирования работало :-?
А вообще, заметил по результату. Программа выводит все элементы меньше 18, независимо от того, есть ли после элемента значения больше 17.

_________________
Rise and rise again, until lambs became lions.


Последний раз редактировалось Afanasyev 07 июн 2013, 03:40, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 06 июн 2013, 22:15 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Leonid писал(а):
Afanasyev писал(а):
Трудноватый на понимание способ :-)

А кто сказал, что будет легко? Обратите внимание на то, как коротко эта конструкция выглядит.

Мой способ не менее впечатлительный :cool:
Но с Вами нельзя не согласиться. Возможно, когда мы пройдем эту тему, будет легко :-)

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 07 июн 2013, 09:56 
Не в сети

Зарегистрирован: 27 сен 2012, 09:57
Сообщения: 76
Семён писал(а):
б)Написать функцию, возвращающую знаки арифметических операций, принятые в MATLAB (знаки сложения, вычитания, умножения и деления), из символьного массива произвольной длины.

б) Решение
Если знать последовательность (смотри в help'е) символов (а в задаче они [33 127] ), то данная(-ые) функция(-ии) выводит(-ят) индексы вектора-строки, где, собственно говоря, и находятся наши знаки арифметических операций - +,-,*,/ (понимаю, что программа криво написана, но она работает =) )
B = find (')'<S & S<',')
C = find (','<S & S<'.')
D = find ('.'<S & S<'0')


Семён, а simplier way

Код:
 funct=@(x) x(x=='-'|x=='/'|x=='+'|x=='*')


где х -символьный массив произвольной длины.

_________________
“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: Летучки
СообщениеДобавлено: 07 июн 2013, 16:10 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Leonid писал(а):
У меня такая конструкция "срабатывает"! :rofl:
Как проверяли?

Я поторопился с выводами. Был не прав!!!
А Afanasyev прав! Не работает так, как ожидается предложенная конструкция.
Изменение переменной цикла внутри цикла невозможно: с одной стороны, логично, с другой стороны, в любом другом языке программирования это работает. Чудно! :swoon:
Как говорится: "Спасибо за Ваш вопрос!"
Буду знать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 07 июн 2013, 16:23 
Не в сети
Site Admin

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 08 июн 2013, 15:01 
Не в сети

Зарегистрирован: 24 окт 2012, 03:32
Сообщения: 138
Откуда: Э-04-10
Вложение:
Матлаб.rar
№ 5 (30 апреля) (примерно, по памяти). Если что не так по условию - поправляйте.
1) Создать массив из целых случайных чисел в диапазоне от 1 до 51. Размерность 7х7. Отсортировать все элементы, значения которых нечётные. Циклы не использовать.
2) На отрезке [0, 2] найти площадь, ограниченную функциями f(x)=sin(x)*exp(-x) и g(x)=0.3-cos(x)*exp(-x/2)


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 08 июн 2013, 16:25 
Не в сети

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

:-? Почему?) Я, например, даже не знаю как в Паскале выйти преждевременно без изменения переменной i
Хотя наверняка есть операторы, подобные break, но не припоминаю, чтобы нам о них рассказывали)

_________________
Rise and rise again, until lambs became lions.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Летучки
СообщениеДобавлено: 08 июн 2013, 16:48 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4285
Откуда: Д-3
Изменение значения счетчика цикла внутри самого цикла - опасная операция, потому что, изменяя условие цикла в его заголовке, нужно не забыть отследить все случаи модификации счетчика, а это может быть муторно и часто приводит к ошибкам. Программу нужно ведь не только писать, но и сопровождать.

Как вам Паскаль без брейка прочли, не представляю себе. Там он так и называется - break. Как и в любом другом языке из тех 10-15, что я знаю )) И введен этот оператор как раз для того, чтобы не модифицировать значение счетчика ;)


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

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


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

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


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

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