2016-04-04 2 views
-1

Я хочу, чтобы вставить номер в следующей матрице: n x 1 матрицаКак вставить значение

6 
103 
104 
660 
579 
750 
300 
299 
300 
750 
579 
661 
580 
760 
302 
301 
302 
760 
580 
662 
581 

Как вставить его в середине и переместить остальные цифры? Я пробовал следующий код:

Idx=[723]; 
c=false(1,length(Element_set2)+length(Idx)); 
c(Idx)=true; 
result=nan(size(c)); 
result(~c)=Element_set2; 
result(c)=8 
+0

Вы попробовали самостоятельно выяснить это? http://www.mathworks.com/matlabcentral/answers/16958-insert-a-value-into-an-array-after-it-s-created – Dan

+0

Idx = [723]; c = false (1, length (Element_set2) + length (Idx)); c (Idx) = true; результат = nan (размер (c)); результат (~ c) = Element_set2; результат (c) = 8 Я использовал это –

ответ

0

Вы усложняете ситуацию. Просто найдите средний индекс, найдя длину массива, разделив его на 2 и обрезая любые десятичные точки, а затем просто проиндексируя для обновления новой матрицы. Предположив, что result является вектор-столбец, который был создан вами и number значение, которое вы хотите вставить в середине, выполните следующие действия:

number = 8; %// Change to suit whatever number you desire 
middle = floor(numel(result)/2); 
result = [result(1:middle); number; result(middle+1:end)]; 

В будущем, пожалуйста, прочитайте этот большой MATLAB учебник по индексации непосредственно из MathWorks: http://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html. Это хороший ресурс по видам операций индексирования, которые можно ожидать от запуска в MATLAB.

Смежные вопросы