Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.66/148: Рейтинг темы: голосов - 148, средняя оценка - 4.66
Зосима
4951 / 3324 / 313
Регистрация: 02.04.2012
Сообщений: 6,210
Записей в блоге: 16
Завершенные тесты: 1
1

СЕКРЕТНО! Зловещая точка претыкания

12.12.2012, 19:00. Просмотров 29726. Ответов 0
Метки нет (Все метки)

Огромное число ошибок в MATLAB программах связано с отсутствием точки перед умножением,делением, степенью!

Поэтому, дружочек, в твоих же интересах ознакомиться с данным текстом до конца!

He пyтaй мaтpичнoe и пoэлeмeнтнoe yмнoжeниe/дeлeниe/cтeпeнь! Не забывай ставить точки!

Выражения a.*b, a./b, a.^b - этo пoэлeмeнтныe oпepaции! их зачастую и нужно использовать при работе с векторами!
Здесь особых премудростей нет, главное, чтобы совпадали длины и ориентация векторов, в результате получаем вектор такой же длинны и ориентации:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>> a = [1 2 3 4];
>> b = [3 5 4 1];
>> a.*b
 
ans =
 
     3    10    12     4
 
>> a./b
 
ans =
 
    0.3333    0.4000    0.7500    4.0000
 
>> a.^b
 
ans =
 
     1    32    81     4
Нужно помнить, что в результат вычисления ф-ций от массива, например sin(a), так же является массивом, той же длинны и той же ориентации, что и входная величина:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>> a = [1 2 3 4];
>> sin(a)
 
ans =
 
    0.8415    0.9093    0.1411   -0.7568
>> b = [3;5;4];
>> sin(b)
 
ans =
 
    0.1411
   -0.9589
   -0.7568
А вот a*b, a/b, a^b - этo мaтpичныe oпepaции! (cм. пpaвилa yмнoжeния/дeлeния/cтeпeни матриц)
Эти операции требуют определеных свойств входных параметров, поэтому получаются следующие ошибки:
- при перемножении двух векторов-строк вылетает ошибка "размерности не совпадают":
>> a = 1:3 ;
>> b = [3 2 5];
>> a*b
??? Error using ==> mtimes
Inner matrix dimensions must agree.
- в степень можно возводить только квадратные матрицы, поэтому при возведении в степень вектора вылетает ошибка "матрица должна быть квадратной":
>> a = [1 2 3];
>> a^2
??? Error using ==> mpower
Matrix must be square.
- с делением происходит более гадкий вариант: при делении векора-строки на вектор-строку ошибка не вылетает, но в результате получается не массив, а одно число!!!, что часто приводит к неверным результатам!
Matlab M
1
2
3
4
5
6
7
>> a = [1 2 3];
>> b = [3 2 5];
>> a/b
 
ans = 
 
  0.5789
- при перемножении вектора-строки на вектор-столбец получаем число, что также может привести к неверным результатам.
Matlab M
1
2
3
4
5
6
7
>> a = [1 2 3];
>> b = [2;3;4];
>> a*b
 
ans =
 
    20
Результат равен сумме произведений элементов, иногда удобно использовать, кстати

- при перемножении вектора-столбца на вектор-строку получаем матрицу, что также может подпортить результат:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
>> x = [1;2;3;4;5];
>> a = [1 2 3];
>> x*a
 
ans =
 
     1     2     3
     2     4     6
     3     6     9
     4     8    12
     5    10    15
Здесь каждый столбец равен произведению столбца x на каждый элемент строки a, что тоже иногда очень может пригодиться!

Замечание:
При умножении числа на вектор нет разницы при использовании матричных и поэлементных операций! (Так как число - это то же матрица, только размером 1х1, не занл? )
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
>> a = 3;
>> b = [3, 5, 4];
>> a*b
 
ans =
 
     9  15  12
 
>> a.*b
 
ans =
 
     9  15 12
Поэтому при действиях с константами и элементами матриц(массивов) точки можно не ставить:
Matlab M
1
2
3
4
5
6
7
8
9
>> i = 3; % индекс
>> n = 0.5; % переменная-число
>> M = magic(5); % матрица 5х5
>> v = 1:10; % вектор
>> (2.54/M(1,i))*v(i+2)^n % так можно
 
ans =
 
    5.6796
34
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2012, 19:00
Ответы с готовыми решениями:

Дана точка М (x, y). Присвоить z = 1, если точка внутри эллипса и z = 0, если точка вне эллипса
задачу паскаль абс Данная точка М (x, y). Присвоить z = 1, если точка внутри...

Точка задана координатами.Определить попадает ли точка в заштрихованную область.
Точка задана координатами.Определить попадает ли точка в заштрихованную...

Описать структуры Шар и Точка; проверить, находится ли точка внутри заданного шара
Определить структуры, описывающие шар и точку в трехмерном пространстве....

компы не видят друг друга при прямом подключении wifi - точка-точка
Короче, суть вот в чём: создаю беспроводную сеть на одном компе, подключаюсь к...

Дана точка М( х,у ). проверить, лежит ли данная точка внутри закрашенной области, представленной на рисунке
Дана точка М( х,у ). проверить, лежит ли данная точка внутри закрашенной...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 19:00

С клавиатуры вводится точка M с координатами [x ; y]. Вычислить, принадлежит ли введенная точка M заштрихованной области рисунка
Помогите плз задачку сделать

Если точка не лежит на координатных осях, то вывести номер четверти, в которой находится точка
Даны два целых числа, координаты точки на плоскости A (x, y). Если точка не...

Дана ограниченная область и точка A(x0, y0). Написать программу, которая проверяет, попадает ли точка с координатами пол
Дана ограниченная область и точка A(x0, y0). Написать программу, которая...


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

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

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