Как проверить в MATLAB, если вектор содержит только нули?

Как и Sun Tzu сказал : лучше побеждать без боя . В моем случае всякий раз, когда я вижу такое сообщение об ошибке (т. Е. Несоответствие между добавленными строками и т. Д.). Я даже не отлаживаю ничего .. Я просто не делаю дополнительный вызов, где я перезагружаю строки и т. Д., Это 99% случаи, когда эта ошибка происходит.

Это распространенный сценарий, когда эта ошибка происходит: у меня есть UINavigationController, и у нее есть UITableView, когда я нажимаю на строку, она нажимает новый UITableView и так далее. Эта ошибка всегда случается со мной, когда я выхожу последним UITableview и возвращаюсь к UITableView перед этим, на этом этапе я делаю ненужный вызов функции loadIt, которая в основном вставляет строки и переадресует UITableView ,

Причина этого в том, что я ошибочно помещаю функцию loadIt в viewDidAppear:animated, а не в viewDidLoad. viewDidAppear:animated вызывается каждый раз, когда отображается UITableView, viewDidLoad вызывается только один раз.

13
задан Lucas 20 May 2010 в 15:01
поделиться

2 ответа

Использовать все :

vector = zeros(1,10)
if 1 && all(vector == 0)   %this comparision will work
    'success'
end
22
ответ дан 1 December 2019 в 18:49
поделиться

Поскольку нули рассматриваются так же, как false, вам не нужно использовать vector == 0, как предлагает ptomato. ~any(vector) - это "MATLAB-way" для проверки только нулевых значений.

if 1 && ~any(vector)   
    'success'
end

Расширяя проблему до массивов, вам придется использовать

array = zeros(5);
if 1 && ~any(array(:))
    'success'
end
14
ответ дан 1 December 2019 в 18:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: