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

Работа с матрицами, упростить код

02.12.2015, 11:58. Показов 812. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
делаю расчеты
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
A=[0.3 0.5 0.3; 0.4 0.2 0.3; 0.1 0.5 1];
B=[0.7 0.6 0.5; 0.6 0.3 0.6; 0.2 0.6 0.8];
 
n=length(A);
m=length(B);
 
 
for i=1:n
    for j=1:m
        C1(i,j)=min(A(1,i),B(1,j));
        C2(i,j)=min(A(1,i),B(2,j));
        C3(i,j)=min(A(1,i),B(3,j));
        
        C4(i,j)=min(A(2,i),B(1,j));
        C5(i,j)=min(A(2,i),B(2,j));
        C6(i,j)=min(A(2,i),B(3,j));
        
        C7(i,j)=min(A(3,i),B(1,j));
        C8(i,j)=min(A(3,i),B(2,j));
        C9(i,j)=min(A(3,i),B(3,j));
    end
end
 
C1=C1';
Cc1=C1(:)';
 
C2=C2';
Cc2=C2(:)';
 
C3=C3';
Cc3=C3(:)';
 
C4=C4';
Cc4=C4(:)';
 
C5=C5';
Cc5=C5(:)';
 
C6=C6';
Cc6=C6(:)';
 
C7=C7';
Cc7=C7(:)';
 
C8=C8';
Cc8=C8(:)';
 
C9=C9';
Cc9=C9(:)';
 
G=[Cc1;Cc2;Cc3;Cc4;Cc5;Cc6;Cc7;Cc8;Cc9];
disp(G);
в результате получается матрица размером 9х9

пытаюсь укоротить код,но не получается
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
A=[ 0.3 0.5 0.3; 0.4 0.2 0.3; 0.1 0.5 1];
B=[0.7 0.6 0.5; 0.6 0.3 0.6 ;0.2 0.6 0.8];
 
n=legth(A);
m=length(B);
h=n*m;
 
for k=1:9
     for i=1:n
            for j=1:m                   
                V(k,k)=min(A(i,j),B(i,j));         
            end
     end 
end
как сделать проще?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2015, 11:58
Ответы с готовыми решениями:

Работа с матрицами (нужно упростить функцию main)
Задача написать программу, которая вычисляет произведение элементов матриц A(4x4);B(5x5);C(3x3);, лежащих выше главной диагонали, а в конце...

Упростить код (работа с мемо)
Всем привет, есть кусок кода (рабочий): var s : string; begin s := ''; s1 := s + Format(template + sLineBreak, ,...

Оптимизировать код и обьяснить с матрицами.
Ниже предоставлены 3 кода. Я прошу вас, если это возможно, подсказать мне как можно их сделать короче или лучше, так же если есть варианты...

7
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
02.12.2015, 12:48
Так какой результат вы хотите получить? Какова сама задача? Ясновидцев тут нету.
0
 Аватар для bobah16
373 / 343 / 42
Регистрация: 14.07.2015
Сообщений: 2,890
02.12.2015, 12:50
Inno, задание озвучьте.
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
02.12.2015, 12:51
Inno, матрица 9х9 чем вас не устраивает?
0
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
02.12.2015, 13:10
не знаю на сколько подойдет, но чуть попроще
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
A=[0.3 0.5 0.3; 0.4 0.2 0.3; 0.1 0.5 1];
B=[0.7 0.6 0.5; 0.6 0.3 0.6; 0.2 0.6 0.8];
 
n=length(A);
m=length(B);
 
 cnt = 0;
for i=1:n
    for j=1:m
        cnt = cnt + 1;
        C1(cnt)=min(A(1,i),B(1,j));
        C2(cnt)=min(A(1,i),B(2,j));
        C3(cnt)=min(A(1,i),B(3,j));
        
        C4(cnt)=min(A(2,i),B(1,j));
        C5(cnt)=min(A(2,i),B(2,j));
        C6(cnt)=min(A(2,i),B(3,j));
        
        C7(cnt)=min(A(3,i),B(1,j));
        C8(cnt)=min(A(3,i),B(2,j));
        C9(cnt)=min(A(3,i),B(3,j));
    end
end
G = [C1;C2;C3;C4;C5;C6;C7;C8;C9];
disp(G);
1
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 12
02.12.2015, 13:29  [ТС]
Centurio, результат устраивает.
Думал, что можно как-то не расписывать минимумы для всех девяти строк, а сделать через цикл.
0
52 / 47 / 19
Регистрация: 05.04.2015
Сообщений: 227
02.12.2015, 14:27
или можно вот так
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
A=[0.3 0.5 0.3; 0.4 0.2 0.3; 0.1 0.5 1];
B=[0.7 0.6 0.5; 0.6 0.3 0.6; 0.2 0.6 0.8];
for k = 1:3
    cnt = 0; C1 = 0; C2 = 0; C3 = 0; 
for i=1:length(A)
    for j=1:length(B)
        cnt = cnt + 1;
        C1(cnt)=min(A(k,i),B(1,j));
        C2(cnt)=min(A(k,i),B(2,j));
        C3(cnt)=min(A(k,i),B(3,j));
    end
end
if k == 1
   G1(k:k+2, :) = [C1; C2; C3];
elseif k == 2
   G2(k-1:k+1, :) = [C1; C2; C3]; 
elseif k ==3
   G3(k-2:k, :) = [C1; C2; C3];
end
end
G = [G1; G2; G3];
disp(G)
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
02.12.2015, 19:11
Inno, то есть вам нужно упростить и сократить код?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.12.2015, 19:11
Помогаю со студенческими работами здесь

Работа с матрицами
Необходимо получить распределение величины N(i) в зависимости от P(i). Это две матрицы 13х13, как написать программу, которая будет считать...

Работа с for и матрицами
Помогите пожалуйста, есть задача: Дана матрица 8х8, нужно поделить каждый элемент столбца на элемент этого же столбца, который находится на...

работа с матрицами
здравствуйте! решите примеры пожалуйста. А то я совсем не разбираюсь в delphi. 1.Даны квадратные матрицы А и В порядка n. Получить...

Работа с матрицами
Доброго времени суток! Может кто-то сможет подсказать по поводу следующего: Задана матрица размером NxM. Упорядочить ее столбцы по...

Работа с матрицами
Задана матрица A вещественных чисел размера N × N (N ≤ 20, задается как параметр). По- строить по ней матрицу B того же размера, элемент...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru