0 / 0 / 0
Регистрация: 20.05.2016
Сообщений: 8
1

Почему не работает цикл for

20.05.2016, 17:32. Показов 1686. Ответов 4

Ситуация такая.
Заполняем матрицу символами:
>> y=['>=' '=' '='].
Функция trans12 зависит от размерности y.
создала файл-функцию.
Цикл if: если i-тый элемент это ">=", то в матрицу znak на последнюю позицию добавляем "=". elseif наоборот. и ошибка.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 function trans12 = trans12 (y,n)
 znak ='';
 for i=1:n
     if y[i]=='>='
         znak=[znak,'='];
     elseif y[i]=='='
         znak=[znak,'>='];
    else 
        error ('Введены неправильные данные. Пожалуйста, проверьте и повторите попытку.')
     end
 end
 disp (y)
 disp ('После цикла замены')
 disp (znak)
 end
Вызываем trans12 (y,3) и он выдает такой результат: ===. хотя по идее, должен быть "= >= >=".
Где я ошиблась?

Добавлено через 10 минут
не тот код вставила:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function trans12 = trans12 (y,n)
znak ='';
for i=1:1:n
    if y[i]=='>='
        znak=[znak,'='];
    elseif y[i]=='<='
        znak=[znak,'='];
    end
i=i+1;
end
disp ('Матрица х')
disp (y)
disp ('После цикла замены')
disp (znak)
end
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2016, 17:32
Ответы с готовыми решениями:

Почему не работает цикл while
&lt;?php $_hwid = $_GET; define('_HOST','localhost'); define('_LOGIN','rot'); define('_PASS','');...

Почему не работает цикл?
Задача на скриншоте. Пытался использовать цикл так как дорога кольцевая и надо result сокращать...

Почему не работает цикл for
У меня не работает первый цикл for, хотя вроде ошибки нигде найти не могу. То есть программа...

Почему цикл не работает?
&lt;html&gt; &lt;head&gt;&lt;title&gt;Палиндром&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;script type=&quot;text/javascript&quot;&gt; ...

4
19 / 17 / 6
Регистрация: 09.01.2014
Сообщений: 336
21.05.2016, 09:03 2
Он не работает потому, что для символьной матрицы y=['>=' '=' '='] матлаб видит результат таким:
y= [ >=== ] и, соответственно, y(1) = > , а должно быть y(1) = >= . Почему такое происходит - сам не знаю.
1
Эксперт по электронике
938 / 838 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
21.05.2016, 09:44 3
Вы вот это хотите получить?
Цитата Сообщение от esklava Посмотреть сообщение
должен быть "= >= >="
Обязательно последовательно эту строку формировать? Первый символ, что, пользователем вводится?
0
273 / 132 / 44
Регистрация: 05.02.2015
Сообщений: 845
22.05.2016, 20:44 4
Лучший ответ Сообщение было отмечено esklava как решение

Решение

Вы пишите:
Он не работает потому, что для символьной матрицы y=['>=' '=' '='] матлаб видит результат таким:
y= [ >=== ]
так все правильно, без разницы как вы напишите: a =['abc' 'cde' 'efg'] или ['abccdeefg'] и в том и в другом случае формируется строка из 9 символов, так как пробел (тот что между опострофами) служит для объединения массивов. соответственно, когда вы пишите ['abc
' 'cde' 'efg'] вы создаете 3 массива по 3 элемента и объединяете их в общий массив по срредством знака ' '. соответственно первый элемент массива = a. если вы хотите, чтобы первый элемент массива был 'abc', то вы должны написать так:
a = {'abc' 'cde' 'edf'}, т.е. заменить квадратные скобки на фигурные, тем самым создав массив ячеек из 3 элементов. а потом получаем интересующую вас строку так:
b = a{1}.
b = 'abc' - строка из 3 элементов.
1
0 / 0 / 0
Регистрация: 20.05.2016
Сообщений: 8
23.05.2016, 17:41  [ТС] 5
Итак, я воспользовалась Вашим советом. В итоге, он работает, огромное спасибо! Надеюсь, больше не сломается!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2016, 17:41

Почему не работает цикл?
Почему не работает код: For n=2 to Q...

Почему не работает цикл?
Задача: открыт счёт, содержащий z руб. В начале каждого следующего месяца на него переводят y руб....

Почему не работает цикл?
Добрый день! Не могу разобраться почему не работает цикл public class InFor { void inFor() {...

Почему не работает цикл
Добрый день всем. Я хочу сделать скрипт, который в тексте будет находить слова, где присутствуют...


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

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

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