2015-03-03 5 views
0

Вот мой код ниже:Я пытаюсь создать loop2mat while-loop, но продолжаю получать ошибку: «Несоответствие размеров подзаголовков».

clear 
clc 
T = readtable('aluminumdatalab3.txt','Delimiter',' '); 
A = table2array(T(:,1)) 

i = 1; 
while i < 159 
    M(i) = cell2mat(A(i)); 
    i = i+1; 
end 

X = str2num(M); 

Я пытался выяснить, как импортировать эти данные в течение нескольких часов, но я просто не могу получить его. Использование cell2mat(A(1)) работает, а также вставляет любое другое число. Это приводит к матрице 1X3. Я не знаю, как поставить его в цикле, чтобы он выполнял его со всеми 158 строками данных. Пожалуйста помоги. Благодаря!

ответ

1

M(i) - скалярный элемент, вы не можете назначить ему вектор 1x3. Попробуйте инициализацию M в качестве матрицы с использованием M=nan(158,3), а затем назначить строки с помощью M(i,:) = cell2mat(A(i));

Соответствующей документации:

http://www.mathworks.com/help/matlab/math/matrix-indexing.html http://www.mathworks.com/help/matlab/ref/colon.html

+0

Хм, все еще получаете ту же ошибку. Я не знал, что вы можете сделать матрицу таким образом, чтобы я узнал что-то новое. –

+2

@NicholasLovell - Какая ошибка и где это происходит? Код, предложенный Даниэлем, должен работать, если то, что вы сказали о своих данных, является правильным. Кроме того, можете ли вы сделать мне одолжение и введите «размер (A)», нажмите «ВВОД» в командной строке и скажите мне, что вы получаете? – rayryeng

+0

Я на самом деле пытался начать с нуля, а затем данные не появятся вообще, после того как я заменил старые файлы данных. Они были в .txt, но я не мог заставить что-то произойти в Matlab, как раньше, поэтому я не мог сказать вам ошибку, к которой я пришел, к сожалению. Я просто закончил вручную, взяв колонки, которые мне нужны, в excel и предоставил им собственный .txt-файл. После этого они импортировали штраф. Я все равно хотел бы выяснить, как это работает, но, как я уже сказал, я не мог получить ничего, чтобы показать, даже чтобы получить это снова. Спасибо за помощь ребята. –

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