2013-07-03 4 views
0

, например, что я имею следующую матрицу, представляющую некоторое изображение:Назначение вектора в ячейке матрицы

I=[1 2; 5 7; 7 5]; 

Получение вектора для вышеуказанной матрицы, мы можем сделать следующее:

I_vector=I(:); 

В то же время скажем, что у нас есть следующий вектор, который был получен после применения некоторых операций на I

f=[5 65 65; 65 67 98; 7 7 9; 87 34 86; 65 87 87; 86 23 07; 76 89 13]; 

Скажите, что для каждого элемента в I я хочу присвоить векторное значение. Итак, вместо I(1)=1, я хочу, чтобы это было I(1)=[5 65 65]. Итак, при вызове I(1) мы получаем последний результат.

Возможно ли это в matlab?

Спасибо.

+1

вы можете назначить строку матрицы следующим образом: 'f (1, :) = [5 65 65]'. Это ты имел в виду? – Amro

ответ

0

Если векторы, которые вы хотите поместить внутри I все из одинаковой длины, а затем сохранить его в качестве матрицы и позвонить по строкам:

I(1,:) 

Если векторы не такой же длины, а затем сохранить его в массиве в клеток и получить доступ к содержимому каждой ячейки с { }:

I = {1:10, 1:20} 
I{2} 
+0

Спасибо за ваш ответ. Вы можете просто прояснить мне первое решение. Когда вы говорите, что векторы имеют одинаковую длину, вы имеете в виду здесь функции? –

+0

Вы можете получить доступ к каждой строке с помощью 'f (1, :)', 'f (2, :)' и т. Д. – Oleg

+0

Да, я знаю, как обращаться к строкам. Но вопрос в том, как назначить их «я»? Спасибо –