matlab не может разделить с помощью /
-
28-10-2019 - |
Вопрос
У меня есть простая функция, которая принимает значение
Это значение является отмеченным рядом операторов if или elseif для вычисления другого значения.
Проблема в том, что при попытке запуска обнаруживается ошибка, в которой говорится:
Ошибка при использовании / Размеры матрицы должны совпадать.
Ошибка в abc (строка 9) а= 5000 / г;
код выглядит следующим образом
родовое словоИтак, я передаю abc 100, и я ожидаю, что a будет 1, но вместо этого он проходит через каждый if / elseif и выдает ошибку на a= 5000 / g
Я также должен упомянуть, что сначала я пытался использовать && в elseifs, но это также дало ошибку, в которой говорилось:
Операнды ||Операторы и && должны быть преобразованы в логические скалярные значения.
Ошибка в abc (строка 6) elseif (g <= 99 && g>= 50)
Кто-нибудь знает, что здесь происходит? Спасибо
Решение
Вы, вероятно, передаете матрицу своей функции, например когда вы звоните
родовое слово yourdata
на самом деле не одно число, а матрица. Если вы звонили напрямую
вы не должны видеть свою проблему (или вы?).
Другими словами, ваша основная проблема не внутри вашей функции , а когда вы ее вызываете!
Судя по вашему описанию, вы установили для yourdata(1)
значение 100, которое хотите проверить, но какой-то другой элемент матрицы имеет другое значение, поэтому конструкция if
переходит в другой случай. Там вам понадобится ./
вместо /
, если вы хотите выполнить поэлементное деление вместо матричного деления .
Но на самом деле вам, вероятно, просто нужно убедиться, что код yourdata
является скалярным при вызове функции.