Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » помогите с Matlab

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12

Открыть новую тему     Написать ответ в эту тему

siszzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста с 2-мя задачами по матлабу.
 
1.Определить k — количество особых элементов массива rmatr[n, m], считая его элемент особым, если он больше суммы остальных элементов его столбца.
 
2.Расположить столбцы матрицы rmatr[n, m] в порядке возрастания элементов k-й строки (k – вводится пользователем с клавиатуры и 1 < k < М).

Всего записей: 28 | Зарегистр. 05-07-2011 | Отправлено: 19:18 12-01-2012 | Исправлено: siszzz, 19:20 12-01-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а ты кто?
если тебе задачки на матлабе дают...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 19:25 12-01-2012
siszzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
необдолбаный бакалавр)

Всего записей: 28 | Зарегистр. 05-07-2011 | Отправлено: 19:46 12-01-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да нет, спецуха?

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 20:13 12-01-2012
siszzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Специальность 230100 Информатика и вычислительная техника

Всего записей: 28 | Зарегистр. 05-07-2011 | Отправлено: 20:48 12-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
siszzz
Так задачки-то простенькие...
Вот тебе 2 функции (матрицу rmatr сам сделаешь до их вызова, например
m=3
n=5
rmatr=rand(m,n)
k= % номер строки для второй задачи

Код:
 
function k=f1(rmatr)
 
[m,n]=size(rmatr);
 
k=0;
for jj=1:1:n
    for ii=1:1:m
        if ((2*rmatr(ii,jj))>sum(rmatr(:,jj)))
            k=k+1;
        end;
    end;
end;
 


Код:
 
function rmatr=f2(rmatr,k)
 
[m,n]=size(rmatr);
 
if (k<1)|(k>m)
    rmatr='должно быть 1<k<m';
else
    for ii=1:1:n-1
        for jj=1:1:n-ii
            if rmatr(k,jj)>rmatr(k,jj+1)
                tmp=rmatr(:,jj);
                rmatr(:,jj)=rmatr(:,jj+1);
                rmatr(:,jj+1)=tmp;
            end;
        end;
    end;
end;
 


Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 22:33 12-01-2012 | Исправлено: dimitriy7, 02:04 13-01-2012
siszzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Огромнейшее спасибо.

Всего записей: 28 | Зарегистр. 05-07-2011 | Отправлено: 17:39 13-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
siszzz
не за что, тем более по второй задачке накосячил - не заметил, что надо

Цитата:
k – вводится пользователем с клавиатуры

, да и для сортировки стандартная ф-ция уже есть...
 
Правильно (да и просто проще) будет так:

Код:
 
function matr=f2(rmatr,k)
 
[m,n]=size(rmatr);
 
if nargin==1
    k=input('Введите номер строки: ');
end;
if (k<1)|(k>m)
    disp(['должно быть 1<k<',num2str(m)]);
    matr=NaN;
else
    matr=(sortrows(rmatr.',k)).';
end;
 

 
PS
А если не секрет - где учишься? Просто в Москве, например, Матлаб параллельно с Паскалем изучают всего в паре ВУЗов...

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 18:20 13-01-2012 | Исправлено: dimitriy7, 19:16 13-01-2012
siszzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ПГУТИ Самара.(у нас паскаль, матлаб, с++,ассемблер)
У них в этом году новая программа, по которой мы сейчас просто весимся.

Всего записей: 28 | Зарегистр. 05-07-2011 | Отправлено: 19:26 13-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
паскаль, матлаб, с++,ассемблер

Все сразу???!!!!!!
Я б тоже повесился...  
 
Если еще задачки будут - пиши, помогу.
Только название темы лучше тогда поправить на "Вопросы по программированию в MatLab"

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 19:36 13-01-2012
siszzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как сделать подфункции в программе(чтобы была отдельная функция ввода, обработки и вывода)?

Код:
 
function k=f1(m,n)
rmatr=rand(m,n)
k=0;
s=0;
for j=1:n
    for i=1:m
          s=s+rmatr(i,j);
          end;
    for i=1:m
        if rmatr(i,j)>s-rmatr(i,j)
            k=k+1;
        end;
    end;
s=0;
end;  
end
 

Всего записей: 28 | Зарегистр. 05-07-2011 | Отправлено: 18:52 15-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
siszzz
 
1. Не надо использовать i и j в качестве переменных - матлаб этого не любит (i и j зарезервированы за "мнимой единицей")
 
2. Есть встроенная функция суммирования элементов sum();
 
3. 2*matr(ii,jj)>sum() то же самое что matr(ii,jj)>sum()-matr(ii,jj)
 
4. Подфункции делаются так же, как и ф-ции (собственно разницы нет - ф-ции могут быть любой степени вложенности),
пишутся либо в отдельный m-файл (тогда они будут доступны отовсюду),
либо в том же m-файле ниже тела основной ф-ции (тогда будут доступны только из нее)
 
 
 
Добавлено:
Насколько я понял, речь идет все о той же задачке №1? Тогда будет как-то так (всё в одном файле f1.m):
Подробнее...

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 19:39 15-01-2012 | Исправлено: dimitriy7, 22:03 15-01-2012
siszzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
встроенную сумм я убрал потому что препод сказал делать вручную, без встроенных функций обработок матрицы)

Всего записей: 28 | Зарегистр. 05-07-2011 | Отправлено: 21:26 15-01-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А смысл тогда матлаб учить, там вся суть как раз во встроенных матричных функциях?... Странный преподаватель, однако...
 
Ну да ладно, обойдемся без стандартных сумм и сортировок:
 
f1.m
Подробнее...
 
f2.m
Подробнее...
Надеюсь, против двоеточия препод ничего не имеет?

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 21:40 15-01-2012 | Исправлено: dimitriy7, 22:27 15-01-2012
siszzz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо тебе большое.
Завтра экзамен по этому предмету. Называется "Введение в ПИ"
Только на экзамене про матлаб не слово, а вопросы чисто по лекциям этого предмета. А чтобы нам не было скучно видимо нам добавили матлаб.

Всего записей: 28 | Зарегистр. 05-07-2011 | Отправлено: 00:12 16-01-2012
crays

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
парни помогите беда по матлабу..у меня есть только фотка ..нужно использовать орператор for

Всего записей: 10 | Зарегистр. 14-02-2012 | Отправлено: 19:10 14-02-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
for i=1:100
  disp(i)
end;
 
используем оператор for, а на фотку сам смотри...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 19:47 14-02-2012
crays

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а если фотку скинуть ...ты сможешь помочь??

Всего записей: 10 | Зарегистр. 14-02-2012 | Отправлено: 21:32 14-02-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нет, я его не знаю...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 00:02 15-02-2012
dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну я знаю... выкладывай фотку

Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 19:07 15-02-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » помогите с Matlab


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru