2013-05-29 6 views
-1

«Вторая половина дня, Я загружал данные в сценарий, который у меня есть, и хотел, чтобы имя файла обозначало название фигуры (или только где-то в тексте). я не могу понять это, любой совет приветствуется .... код я бегу это:Извлечь текстовую строку из uigetfile?

%% File selection 

[fileName, pathName] = uigetfile({'*_SUMMARY.mat' 'MAT-files (*_SUMMARY.mat)'}, 'Load Data', '.'); 
if pathName == 0, error('No file selected'), end 
load(fullfile(pathName,fileName)) 
%% Intercept and gradient 
%-------c---------m------] 
FR = [0.6051, -1.9666e-05;... % zero 
    0.60429, -1.8295e-05;... % 60 
    0.60576, -2.1043e-05;... % 120 
    0.60311, -1.5683e-05];  % 180 
N = numel(FR(:,1)); 
% x-axis limits 
x = linspace(1,1000,N)'; % Vector of [N] equally spaced points in range 0:1000 
% End position as scalar value 
idx = 102; % Get data for sheet 102 
V = 1:numel(SheetInkThickness(1,:)); % vector for 'x' values 
FinalSheetSum = sum(SheetInkThickness(idx,:)); % sum 
average = mean(SheetInkThickness(idx,:)); % mean 
ActMinusAve = (SheetInkThickness(idx,:)-average).^2; % (Act-Ave).^2 
sumActMinusAve = sum(ActMinusAve); % Sum of Act-Ave 
SheetInkProperties = [V', (SheetInkThickness(idx,:))', ActMinusAve']; % matrix for storing ink sheet properties 
[maxActMinusAve, idmaxActMinusAve] = max(ActMinusAve); % max of ActMinusAve 
[minActMinusAve, idminActMinusAve] = min(ActMinusAve); % min of ActMinusAve 
[maxSIT, idmaxSIT] = max(SheetInkThickness(idx,:)); 
[minSIT, idminSIT] = min(SheetInkThickness(idx,:)); 
[maxSIT2, idmaxSIT2] = max(ActMinusAve); 
[minSIT2, idminSIT2] = min(ActMinusAve); 
[p, S] = polyfit(V', SheetInkProperties(:,2),1); 
[y,delta] = polyval(p,V',S); 
StDev = std(SheetInkThickness(idx,:)); 
diff1 = (maxSIT-average); % Difference between max and average 
diff2 = (average-minSIT); % Difference between min and average 
if diff1>diff2;  % Find which difference is greater 
    difference = diff1; 
else difference = diff2; 
end 
%% Sheet ink thickness 
fh5 = figure(5); 
clf 
hold on 
grid on 
subplot(2,2,3:4) 
plot(V, ActMinusAve, 'b.-'); 
text(0.45, 0.9, ['maximum: ', num2str(maxSIT2)],... 
    'units','normalized') 
text(0.45, 0.85, ['minimum: ', num2str(minSIT2)],... 
    'units','normalized') 
text(0.45, 0.8, ['System length:  ', num2str(Sum.Total_Length),' (mm)'],... 
    'units','normalized') 
text(0.45, 0.75, ['Number of rollers: ', num2str(Sum.NoOfRollers+1)],... 
    'units','normalized') 
text(0.45, 0.7, ['Number of nips: ', num2str(Sum.NoOfNips)],... 
    'units','normalized') 
text(0.9, 0.85, {'{\it\Sigma(x-{\itxmean)^2} = }',... 
    num2str(sumActMinusAve)},'units','normalized'); 
title('{\it(x-{\itxmean)^2}}'); 
xlabel('segments on sheet'); 
ylabel('ink thickness'); 
% Lower figure 
subplot(2,2,1:2) 
plot(V, SheetInkThickness(idx,:)) 
hold on 
plot(V, average,'r-'); 
text(V(1,end),average,'average'); 
text(0.45, 0.9, ['average:  ', num2str(average)],... 
    'units','normalized') 
text(0.45, 0.85, ['difference: ', num2str(difference)],... 
    'units','normalized') 
text(0.45, 0.8, ['Standard deviation: ', num2str(StDev)],... 
    'units','normalized') 
text(idmaxSIT, maxSIT, ['\leftarrow max = ',num2str(maxSIT)]); 
text(idminSIT, minSIT, ['\leftarrow min = ',num2str(minSIT)]); 
title('sheet ink thickness') 
xlabel('sheet length (segments)'); 
ylabel('ink thickness (um)'); 

Да я знаю, что это грязно и есть определенные возможности для петли/vectorise часть этого кода но это незавершенное производство. Может ли кто-нибудь указать мне в правильном направлении для решения моей проблемы, пожалуйста? Благодаря Richard

ответ

2

Если я понимаю, что вы просите, вы, вероятно, хотите посмотреть на использование mfilename

http://www.mathworks.com/help/matlab/ref/mfilename.html

Так, например, если вы хотите использовать имя файла в качестве названия фигуры, вы могли бы использовать

% File is named myScript.m 
figure 
axes 
title(mfilename) 

Plot from myScript.m

Если вы хотите узнать больше, дайте мне знать

+0

Отличное знание - я действительно старался использовать правильные поисковые термины, чтобы найти информацию. на google! кажется, работает хорошо (как только я получу синтаксис правильно). – richyo1000

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