Эти операции служат для выполнения матричных действий по правилам матричной алгебры. Например:
--a=[1 2 3],b=[3 2 1]
a =
1. 2. 3.
b =
3. 2. 1.
--a*b
!--error 10
Некорректное умножение.
a*b' ans = 10. --b' * a ans = 3. 6. 9. 2. 4. 6. 1. 2. 3." width="640"
Согласно правилам матричной алгебры, важен порядок множителей:
--a*b'
ans =
10.
--b' * a
ans =
3. 6. 9.
2. 4. 6.
1. 2. 3.
a .* b ans = 3. 4. 3." width="640"
Для выполнения поэлементного умножения двух массивов необходимо поставить перед знаком действия точку:
--a .* b
ans =
3. 4. 3.
Операторы ветвления
Функция для расчета логарифма числа по произвольному основанию:
function rez=logB(num,base)
rez = log(num)/log(base)
endfunction
ifthen
elseifthen
...
elseifthen
elseend
1, length(base)1]) then error('Ошибка: массив не может быть входным параметром'); else if and([num0, base0, base1]) then rez = log(num)/log(base) else error('Ошибка: неверные входные данные'); end end endfunction" width="640"
Новый вид функции с проверкой входных данных на корректность:
function [rez]=logB(num, base)
//Проверка размера массивов
if or([length(num)1, length(base)1]) then
error('Ошибка: массив не может быть входным параметром');
else
if and([num0, base0, base1]) then
rez = log(num)/log(base)
else
error('Ошибка: неверные входные данные');
end
end
endfunction
Способ использования прост:
warning('on') //включение режима вывода предупреждений
warning('сообщение') //вывод сообщения
warning('off') //выключение режима вывода предупреждений
Общий вид оператора множественного выбора
select
case then
case then
case then
…
case then
else
end
Рассмотрим функцию, получающую количество информации в байтах и выдающее название наибольшей единицы измерения.
function rez=edIzm(N)
sN = string(N)
select length(sN)
case 1 then rez='Байт'
case 2 then rez='Байт'
case 3 then rez='Байт'
case 4 then rez='Килобайт'
case 5 then rez='Килобайт'
case 6 then rez='Килобайт'
case 7 then rez='Мегабайт'
case 8 then rez='Мегабайт'
case 9 then rez='Мегабайт'
else
warning('on')
warning('Введенное больше чем 999 Мегабайт')
warning('off')
rez='Много'
end //select
endfunction
Циклы
Счетный ( for ) и условный ( while ).
Общий вид оператора счетного цикла следующий:
for =
End
edIzm([1,2,4]) ans = Байт --edIzm([1,23,4]) WARNING: Введенное больше чем 999 Мегабайт ans = Много" width="640"