Вопрос

У меня есть простая функция, которая принимает значение

Это значение является отмеченным рядом операторов 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 является скалярным при вызове функции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top