2015-10-10 3 views
-1

Я хочу написать функцию, которая загружает текстовый файл и графически его содержимое со временем. У меня есть 20 текстовых файлов, поэтому я хочу иметь возможность выбирать из них.Как ввести строку в функцию Matlab

Моего текущий не работает код:

TextFile является общим переменной text123.txt является фактическим именем одного из файлов, я хочу, чтобы загрузить

function []= PlotText(TextFile) 


text(1,:)=load('text123.txt') ; 

t=0:10; 

plot(t,text) 

end 

Я признателен за любую помощь !!

+0

Не могли бы вы сказать, почему это не работает? Вы получили сообщение об ошибке? Из того, что вы написали, я думаю, что вы можете иметь текст (1,:) = load (TextFile); 'и называть свою функцию« PlotText ('text123.txt »);' –

+0

Возможный дубликат [Как сделать передать строку как аргумент функции в MATLAB?] (http://stackoverflow.com/questions/1989919/how-do-i-pass-a-string-as-a-function-argument-in-matlab) – IKavanagh

ответ

0

использовать importdata вместо нагрузки с соответствующим разделителем. Я предполагаю, что вы использовали Tab.

filename = 'num.txt'; 
delimiterIn = '\t'; 
text = importdata(filename,delimiterIn) 
t=1:10; 
plot(t,text); 
0

Во-первых, вы можете также использовать dlmread, если файл содержит только числовые данные, разделенные одним символом (так называемый разделителем), такие как запятая (,), точка с запятой (;), пробел() или вкладку(). Это будет выглядеть так:

function []= PlotText(TextFile) 


text(1,:)=dlmread('text123.txt'); 

t=0:10; 

plot(t,text) 

end 

Имейте в виду, что ваш код написан таким образом, что ожидает содержимое text123.txt иметь 11 значений в одной строке. Кроме того, если вы используете несколько файлов, то я предлагаю, чтобы имя файла было другим вводом функции:

function []= PlotText(TextFile,filename) 


text(1,:)=load(filename) ; 

t=0:10; 

plot(t,text) 

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