Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 122
1

Стандартные мат. операции с двумерными массивами

21.08.2013, 08:26. Просмотров 3242. Ответов 27
Метки нет (Все метки)


Возможно ли вычитание и другие стандартные мат. операции с двумерными массивами как с векторами? всегда делал это в цикле, а может есть команда? поэлементное вычитание друг из друга... или сложение
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.08.2013, 08:26
Ответы с готовыми решениями:

Операции с одномерными и двумерными массивами
Здравствуйте, господа помогите пожалуйста сделать 2 программы с массивами в MATLAB. Операции с...

Операции с двумерными массивами
1. Дан двумерный массив размером nm, заполненный случайным числами. Определить, есть ли в данном...

Операции с двумерными массивами
Дан двумерный массив,который заполняется числами. Допустим A = , , ,] Как такой массив...

Стандартные операции с массивами
Можете помочь? Завтра сдавать : 1) Вести массив A(N). Найти среднее геометрическое значение...

__________________
Помогаю в написании студенческих работ здесь.
27
535 / 522 / 38
Регистрация: 13.03.2011
Сообщений: 727
21.08.2013, 09:38 2
Операции сложения и вычитания по определению поэлементные.
Интересно, а что мешает самостоятельно проверить, раз появился такой вопрос? Это же несложно. :-)
0
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 122
21.08.2013, 09:53  [ТС] 3
есть массив a и массив b пускай.
оба двумерные. при сложении c=a+b; пишет Matrix dimensions must agree.
0
535 / 522 / 38
Регистрация: 13.03.2011
Сообщений: 727
21.08.2013, 10:08 4
Правильно!
Массивы, которые складываются, должны быть одинакового размера.
Это относится к массивам любой размерности и размера. Разве можно сложить поэлементно 2 разных по длине вектора? А в цикле это делается? Тоже нет.
0
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 122
21.08.2013, 10:12  [ТС] 5
а как сложить разные, а остатки чтобы нулями заполнялись?
0
535 / 522 / 38
Регистрация: 13.03.2011
Сообщений: 727
21.08.2013, 10:20 6
Сделать их одинаковаыми по размеру, а эатем сложить.
Но это неверный подход. Нельзя складывать разные по размеру массивы - это аксиома!
0
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 122
21.08.2013, 10:25  [ТС] 7
ну мне нужно это сделать. и получить третий массив как разницу или сумму. вариантов не других? кол-во строк одинаковое в обоих массивах
0
535 / 522 / 38
Регистрация: 13.03.2011
Сообщений: 727
21.08.2013, 10:30 8
Есть 2 варианта:
1. Дополняете нулями меньший массив до размера большего.
2. Работаете с той частью большего массива, которая равна по размерам меньшему.
0
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 122
21.08.2013, 10:36  [ТС] 9
не могу я добить нулями. придумайте что-нибудь, а? долго объяснять, но в обоих массивах у меня значения сигналов, и их надо вычесть или сложить целиком, а если вычитать нечего нули надо.
0
Модератор
Эксперт по математике/физике
4722 / 3614 / 1225
Регистрация: 30.07.2012
Сообщений: 10,309
21.08.2013, 10:42 10
Цитата Сообщение от np_jazz
...долго объяснять, но в обоих массивах у меня значения сигналов, и их надо вычесть или сложить целиком, а если вычитать нечего нули надо.
np_jazz, прикрепите файл(ы) с Вашими "массивами сигналов", которые "надо вычесть или сложить целиком, а если вычитать нечего нули надо"
Правила форума CyberForum.ru
4.7. Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены
1
np_jazz
21.08.2013, 11:04  [ТС]
  #11

Не по теме:

оказывается есть расширенный режим!



Не по теме:

вот

0
453 / 279 / 13
Регистрация: 13.11.2012
Сообщений: 588
Записей в блоге: 1
21.08.2013, 11:37 12
я дико извиняюсь, но в чём проблемы-то? так нельзя дополнить нулями, что нарушиться????
Matlab M
1
MT(:,102:113)=0;
А если надо, чтобы в меньшую размерность всё сводилось, то потом отрезать ненужное.
Matlab M
1
Result=SP(:,1:101)-MT;
0
535 / 522 / 38
Регистрация: 13.03.2011
Сообщений: 727
21.08.2013, 11:37 13
Например, такой вариант:
Matlab M
1
2
3
4
5
6
7
8
9
10
clear, clc
load('mst1.mat');   % create MT
load('theory.mat'); % create SP
 
big = SP;
small = MT;
 
[rows cols] = size(small);
differences = NaN(size(big));
differences(1:rows,1:cols) = big(1:rows,1:cols) - small
NaN сделан для того, чтобы отличать варианты "отсутствие различий" и "не сравнивалось".
0
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 122
21.08.2013, 11:43  [ТС] 14
а если у второг массива размер то больше то меньше первого? (по столбцам)
0
453 / 279 / 13
Регистрация: 13.11.2012
Сообщений: 588
Записей в блоге: 1
21.08.2013, 11:47 15
Тогда вставь в начале проверку правильного выбора маленького и большого массивов с помощью конструкции if, а потом действия те же...
0
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 122
21.08.2013, 11:53  [ТС] 16
ребят, я нуб, помогите написать целиком...
0
535 / 522 / 38
Регистрация: 13.03.2011
Сообщений: 727
21.08.2013, 12:17 17
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
clear, clc
load('mst1.mat');   % create MT
load('theory.mat'); % create SP
 
if size(MT, 2) < size(SP, 2)
    big = SP;
    small = MT;
else
    big = MT;
    small = SP;
end
    
[rows cols] = size(small);
differences = NaN(size(big));
differences(1:rows,1:cols) = big(1:rows,1:cols) - small
Добавлено через 1 минуту
Это при условии, что число строк одинаково...
1
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 122
22.08.2013, 08:39  [ТС] 18
всё работает как надо, только при вычитании, если вычитать нечего, должно сохраняться значение большего массива. как-будто мы ноль вычли. и NaN-ов не должно быть в результирующем массиве.
0
535 / 522 / 38
Регистрация: 13.03.2011
Сообщений: 727
22.08.2013, 09:10 19
Замените 14 строку на
Matlab M
1
differences = big;
0
0 / 0 / 0
Регистрация: 28.03.2013
Сообщений: 122
22.08.2013, 09:47  [ТС] 20
чё-то не то! конечный массив больше стал чем больший был. какой-то сдвиг, в общем не то.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2013, 09:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Стандартные операции с массивами (матрицами)
-------------------------------------------------------------------------------------------...

Работа с двумерными массивами
АВС.net

работа с двумерными массивами в Си
работа с двумерными массивами в Си 1)Найти сумму положительных кратных 3 элементов 2)Составьте...

Задача с двумерными массивами
Заданно две матрицы С и G. Составить программу печати максимального элемента матрицы А, которая...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.