Добавление значения в ячейку в цикле

#matlab

#matlab

Вопрос:

У меня есть простой код, как показано ниже, и я пытаюсь вставить значения в массив ячеек.

 a = cell(14,1);
for i = 1:14
    a(i:1)=sin(i)
end
  

Однако ошибка выдавалась как:

 Conversion to cell from double is not possible.
  

В чем проблема этого кода?

Комментарии:

1. попробуйте a{i}=sin(i)

Ответ №1:

Либо разверните ячейку, либо оберните результат функции sin в ячейку.

 a = cell(14,1);
b = cell(14,1);

for ii = 1:14
    a{ii} = sin(ii);
    b(ii) = {sin(ii)};
end

isequal(a,b)

ans =

  logical

   1
  

Ответ №2:

Ваш синтаксис неверен. a(i:1) не может работать внутри цикла над i. Простое использование a(i) даст вам желаемый результат.