%This program analyses the local multiple consecutive responses in %experiments in which multiple indentations inducing deformation only were performed. %The this program requires the expfit function, which I downloaded from the %Matlab Central: http://www.mathworks.com/matlabcentral/fileexchange/21959-exponential-fit-without-start-guess %and made s1=0 for caseval=1. clc; clear; files=dir('*.xls'); fileIndex = find(~[files.isdir]); for j=1:length(fileIndex)% here the number of files in that folder [status,sheets] = xlsfinfo(files(j).name); numel (sheets); for p=1:1:(numel(sheets)/2);% here the number of sheets from which you want to read the data/2, each represents an expeirment [num,txt,raw] = xlsread(files.name,(2*p)-1,'A1');%This loads the information on the entire sheet Data.Name{j}{p}= txt;%Reads the name of the file, which is located in the first entry of the sheet (2*i)-1 Data.RAW{j}{p}= xlsread(files.name,p*2); %reads the data from the even excel sheets %size(Data.RAW{i}); a=[Data.Name{j}{p}]; NoFrames =numel(Data.RAW{j}{p}(:,1));%the number of frames NoCells =numel(Data.RAW{j}{p}(1,:));%the number of ellipses Data.NoCells{j}{p}=numel(Data.RAW{j}{p}(1,:));%to save pt in Data.m frame=(1:1:NoFrames); Data.TimePerFrame=.355; % +-10ms Seconds TimeFrame = frame*Data.TimePerFrame; colours='bgmckbgmck'; for k=1:NoCells Data.Cell{j}{p}{k} =Data.RAW{j}{p}(:,k);%the number of ellipses % right now Data.Cell{j}{i}{k} contains the kth column intensity % profile of the ith sheet in the jth file end %now that we have named the cells in each of the sheets, in each of the %files, we will check if the local response is a linear comibination of the %cells{k>2}, to do this: Data.LocalInt{j}{p}=Data.Cell{j}{p}{1}; Data.PrimaryInt{j}{p}=Data.Cell{j}{p}{2}; Data.Vector{j}{p}=Data.Cell{j}{p}{3}; for l=3:1:NoCells Data.Vector{j}{p}=[Data.Vector{j}{p}, Data.Cell{j}{p}{l}]; end Data.CoeffVec{j}{p} = Data.Vector{j}{p}\Data.PrimaryInt{j}{p}; %%% the linear combination will be given by the dot product of the matrix %%% CELL and the Vector. Data.LinearComb{j}{p} = Data.Vector{j}{p} * Data.CoeffVec{j}{p}; Data.Cell{j}{p}{NoCells+1} =Data.LinearComb{j}{p}; %selecting the start figure() plot(Data.PrimaryInt{j}{p},'r','LineWidth',2); title('Select the point where the light was turned off') hold on; [x1,y1]=ginput(1);%cuts the data in case the light was on close(gcf); figure(); for k=1:NoCells+1 Data.s{j}{p}{k}=expfit(frame(x1:end),Data.Cell{j}{p}{k}(x1:end) ,1); %here we are doing the fit with the exponential to account for the bleaching Data.y{j}{p}{k}=Data.s{j}{p}{k}(2)*exp(-frame/Data.s{j}{p}{k}(3)); %plots local, primary, lin comb and exp fit S1=size(Data.Cell{j}{p}{k}(x1:end)); plot((Data.Cell{j}{p}{k}(x1:end)-Data.Cell{j}{p}{k}(end-S1(1)+1)),[colours(k)],'LineWidth',2); hold on; S2=size(Data.y{j}{p}{k}(x1:end)); plot((Data.y{j}{p}{k}(x1:end)-Data.Cell{j}{p}{k}(end-S1(1)+1))','k','LineWidth',2); title([files.name ' Cell_' num2str(p)]); xlabel('frame'); ylabel('Avg Intensity'); legend('Local','Exp','Primary','Exp','Cell3','Exp','Cell4','Exp','Cell5','Exp','Linear Combination','Exp') end plot((Data.Cell{j}{p}{k}(x1:end)-Data.Cell{j}{p}{k}(end-S1(1)+1)),'r.','LineWidth',1);%this is the linear combination cell %unbleaching each cell with the LC's exponential figure() for k=1:2 Data.UnbLCCell{j}{p}{k}= Data.Cell{j}{p}{k}(x1:end)./(Data.y{j}{p}{NoCells+1}(x1:end))'; plot((Data.UnbLCCell{j}{p}{k}-Data.UnbLCCell{j}{p}{k}(1)),[colours(k)],'LineWidth',2); title([files.name ' Cell_' num2str(p)]); xlabel('frame'); ylabel('Avg pntensity'); legend('Local/eLC','Primary/eLC','Cell3/eLC','Linear Combination/eLC, thicker line') hold on; end %LC, with index: NoCells+1 Data.UnbLCCell{j}{p}{NoCells+1}= Data.Cell{j}{p}{NoCells+1}(x1:end)./(Data.y{j}{p}{NoCells+1}(x1:end))'; plot((Data.UnbLCCell{j}{p}{NoCells+1}-Data.UnbLCCell{j}{p}{NoCells+1}(1)),[colours(NoCells+1)],'LineWidth',2); plot(Data.UnbLCCell{j}{p}{NoCells+1}-Data.UnbLCCell{j}{p}{NoCells+1}(1),'r.','LineWidth',1); %plotting the local, primary and linear combination LC unbleached figure() plot((Data.UnbLCCell{j}{p}{1}-Data.UnbLCCell{j}{p}{1}(1))',[colours(1)],'LineWidth',2);%local hold on; plot((Data.UnbLCCell{j}{p}{2}-Data.UnbLCCell{j}{p}{2}(1))',[colours(2)],'LineWidth',2);%primary plot((Data.UnbLCCell{j}{p}{NoCells+1}-Data.UnbLCCell{j}{p}{NoCells+1}(1))','r');%LC plot((Data.UnbLCCell{j}{p}{NoCells+1}-Data.UnbLCCell{j}{p}{NoCells+1}(1))','r.','LineWidth',2);%LC title([files.name ' Cell_' num2str(p)]); xlabel('frame'); ylabel('Avg Intensity'); legend('Local','Primary','Linear Combination') %Treatment for local responses: %SUBTRACTING THE PRIMARY GLOBAL FROM THE LOCAL Data.UnbLCLocal{j}{p}=Data.UnbLCCell{j}{p}{1}-Data.UnbLCCell{j}{p}{2};% calculated subtracting the unbleached local minus the unbleached global figure() plot(Data.UnbLCLocal{j}{p},[colours(2)],'LineWidth',2); %AT THE ORIGIN title([files.name ' Cell_' num2str(p) ' LOCAL - GLOBAL (LC unbleaching)']); xlabel('frame'); ylabel('Avg Intensity'); legend('Local/eLC - Primary/eLC') fileN=[files.name(1:end-4) '_Cell_' num2str(p)] Subtraction= input('If there is LOCAL RESPONSE AND NO GLOBAL press 1, otherwise press enter:'); %LOCAL RESPONSE: features above the BASAL LEVEL in the graph of local %GLOBAL RESPONSE: features in the global normalized response above the %basal level; long amplitude and duration (see paper) %COULD HAPPEN THAT YOU HAVE BOTH LOCAL ON TOP OF GLOBAL. The program %has to ask if there is global after the local response analysis. Alphabet={'A','B','C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P','Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA','AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ'}; if Subtraction==1 %if there is LOCAL RESPONSE!! Data.UnbLocalCurve{j}{p}= (Data.UnbLCLocal{j}{p})+Data.UnbLCCell{j}{p}{2}(1);%THE UNBLEACHED LOCAL SUBTRACTION PLUS THE BASAL OF THE GLOBAL RESPONSE Data.UnbleachingExp{j}{p}= (Data.s{j}{p}{NoCells+1});%in this case we used the linear combination to unbleach SaveAllFigures(fileN,'fig'); close(gcf); close(gcf); close(gcf); close(gcf); close(gcf); %now we measure the noise of the signal: figure() plot(Data.UnbLocalCurve{j}{p}) hold on; title('Select the point from which you want to start the NOISE CALCULATION'); xlabel('frame'); ylabel('Avg Fluorescence Intensity'); [xNoise,yNoise] = ginput(2); frame=frame(1:size(Data.UnbLocalCurve{j}{p})); [q s] = polyfit(frame(xNoise(1):xNoise(2))', Data.UnbLocalCurve{j}{p}(xNoise(1):xNoise(2)), 1); %Takes the last fourth of the curve and fits a 1st grade polynomial [y_fit Data.delta{j}{p}] = polyval(q, frame(xNoise(1):xNoise(2))', s); %calculates the stdev around the fit plot(frame(xNoise(1):xNoise(2))', y_fit + 2 * Data.delta{j}{p}, ':', frame(xNoise(1):xNoise(2))', y_fit - 2 * Data.delta{j}{p}, ':') %plots the curve and the noise around it Data.Noise{j}{p}=2*mean(Data.delta{j}{p}); % 2 delta corresponding roughly to the 95% confidence interval. The mean is the average of the delta value. Noise={'Noise Intensity'; Data.Noise{j}{p}};%%% save the NOISE LEVEL!!! f=figure; h = uicontrol('Position',[20 20 200 40],'String','Continue',... 'Callback','uiresume(gcbf)'); plot(Data.UnbLocalCurve{j}{p}, 'r', 'LineWidth',2); title('SELECT THE START AND END OF EACH OF THE PEAKS, the start:determines the basal and A') xlabel('frame') ylabel('Avg Fluorescence Intensity') uiwait(gcf); Data.NoPeaks{j}{p}= input('How many peaks do you want to analyze?'); P=Data.NoPeaks{j}{p}*2; NoPeaks= Data.NoPeaks{j}{p}; [x,y] = ginput(P); Data.x{j}{p}=[x]; Data.y{j}{p}=[y]; point=[x,y]; close (f); for m=1:2:P-1 %here we determine the interval of each peak; the initial value %will determine the basal level myIndices1=find(frame>=x(m)); myIndices2=find(frame<=x(m+1)); frame2=frame(myIndices1(1):myIndices2(end));%frame effective piece Data.PeakFrames{j}{p}{m}=frame2%from the fple j, the cell i, the peak m Data.PeakInt{j}{p}{m}=Data.UnbLocalCurve{j}{p}(myIndices1(1):myIndices2(end)); %intensity effective piece, the response will start at zero figure() plot(Data.PeakInt{j}{p}{m},'k') hold; [maxintens,index1] =max(Data.PeakInt{j}{p}{m}); Data.PeakAmpl{j}{p}{m} =max(Data.PeakInt{j}{p}{m})-Data.PeakInt{j}{p}{m}(1);%amplitude, measured from the basal Data.PeakHalfMax{j}{p}{m} =Data.PeakAmpl{j}{p}{m}/2; %save the Peak Half Max, now that we know it exists. plot(frame(index1),Data.PeakInt{j}{p}{m},'r.')%plots the peak intensity %Before: A intensA=Data.PeakInt{j}{p}{m}(1:index1)-Data.PeakInt{j}{p}{m}(1);%the portion before the maximum index2=find(intensA<=Data.PeakHalfMax{j}{p}{m});%before halfmax frameA{j}{p}{m}=frame(index2); Data.HalfMaxFrameA{j}{p}{m}=frameA{j}{p}{m}(end); plot(Data.HalfMaxFrameA{j}{p}{m},Data.PeakInt{j}{p}{m},'b.') %After: D intensD=Data.PeakInt{j}{p}{m}(index1:end)-Data.PeakInt{j}{p}{m}(1);%the portion after the maximum, translated the same amount as intensA index3=find(intensD>=Data.PeakHalfMax{j}{p}{m});%after del halfmax frameD{j}{p}{m}=frame(index1+index3); Data.HalfMaxFrameD{j}{p}{m}=frameD{j}{p}{m}(end); plot(Data.HalfMaxFrameD{j}{p}{m},Data.PeakInt{j}{p}{m},'b.') %%% SAVE THE NEXT THREE IN THE PROPER CASE!!!! Data.FrameDuration{j}{p}{m}=Data.HalfMaxFrameD{j}{p}{m}-Data.HalfMaxFrameA{j}{p}{m};%duration of avg amplitude Data.TimeDuration{j}{p}{m}= (Data.FrameDuration{j}{p}{m}).*Data.TimePerFrame;%duration of avg amplitude Data.Amount{j}{p}{m}=Data.PeakAmpl{j}{p}{m}*Data.TimeDuration{j}{p}{m}; end %save the linear combination vector and the coefficients the coefficients myName{1}=['LCCoeffs']; myName{2}=['LC_Vector']; myName{3}=['LC_Exp']; myName{4}=['Unb_Local']; headers = [myName]; letter1=[Alphabet(NoCells+(3))]; CoeffPosition1A=[letter1 '1']; CoeffPosition1=strcat(CoeffPosition1A(1), CoeffPosition1A(2)); varargin=CoeffPosition1; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, headers,p*2,myString); CoeffPosition2A=[letter1 '2']; CoeffPosition2=strcat(CoeffPosition2A(1), CoeffPosition2A(2)); varargin=CoeffPosition2; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, Data.CoeffVec{j}{p},p*2,myString); letter2=[Alphabet(NoCells+(4))]; LinearCombPositionA=[letter2 '2']; LinearCombPosition=strcat(LinearCombPositionA(1), LinearCombPositionA(2)); varargin=LinearCombPosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, Data.LinearComb{j}{p},p*2,myString); letter3=[Alphabet(NoCells+(5))]; UnbExpPositionA=[letter3 '2']; UnbExpPosition=strcat(UnbExpPositionA(1), UnbExpPositionA(2)); varargin=UnbExpPosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, Data.UnbleachingExp{j}{p}(2:3)',p*2,myString); letter4=[Alphabet(NoCells+(6))]; UnbLocalPositionA=[letter4 '2']; UnbLocalPosition=strcat(UnbLocalPositionA(1), UnbLocalPositionA(2)); varargin=UnbLocalPosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, Data.UnbLocalCurve{j}{p} ,p*2,myString); myName1{1}=['Noise']; headers1 = [myName1]; L1=[Alphabet(2*NoCells +2)]; NoisePosition1A=[L1 '3']; NoisePosition1=strcat(NoisePosition1A(1), NoisePosition1A(2)); varargin=NoisePosition1; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, headers1,p*2-1,myString); NoisePosition2A=[L1 '4']; NoisePosition2=strcat(NoisePosition2A(1), NoisePosition2A(2)); varargin=NoisePosition2; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, Data.Noise{j}{p},p*2-1,myString); myName2{1}=['Basal Norm Constant']; headers2 = [myName2]; L2=[Alphabet(2*NoCells +3)]; BASALPosition1A=[L2 '3']; BASALPosition1=strcat(BASALPosition1A(1), BASALPosition1A(2)); varargin=BASALPosition1; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, headers2,p*2-1,myString); for k=1:NoCells+1 myCell{k}=['Cell' num2str(k)]; ExpFitCell_1{k} =[Data.s{j}{p}{k}(2)]; ExpFitCell_2{k} =[Data.s{j}{p}{k}(3)]; end headerCell = [myCell]'; NameExp{1}=['a*exp(-t/b)']; headerCELL= [NameExp ; headerCell]; LetterCellExp=[Alphabet((NoCells+1)*2)]; CellExpPosition1A=[LetterCellExp '6']; CellExpPosition1=strcat(CellExpPosition1A(1), CellExpPosition1A(2)); varargin=CellExpPosition1; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, headerCELL,p*2-1,myString); LetterCellExp1=Alphabet(((NoCells+1)*2+1)); CellExpPosition2A=[(LetterCellExp1) '7']; CellExpPosition2=strcat(CellExpPosition2A(1), CellExpPosition2A(2)); varargin=CellExpPosition2; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, ExpFitCell_1' ,p*2-1,myString); CellExpPosition3A=[Alphabet(((NoCells+1)*2+2)) '7']; CellExpPosition3=strcat(CellExpPosition3A(1), CellExpPosition3A(2)); varargin=CellExpPosition3; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, ExpFitCell_2' ,p*2-1,myString); finalExpLetter=Alphabet(((NoCells+1)*2+2)); for l= 1:NoPeaks myPeak{2*l-1}=['Peak' num2str(l) 't_i']; myPeak{2*l}=['Peak' num2str(l) 't_f']; end for l= 1:(NoPeaks*2)-1 PeakFrameDuration{l} =[Data.FrameDuration{j}{p}{l}]; PeakTimeDuration{l}= [ Data.TimeDuration{j}{p}{l}]; PeakAmpl{l} =[Data.PeakAmpl{j}{p}{l}]; PeakAmount{l} = [Data.Amount{j}{p}{l}]; end headerPeak = [myPeak]'; PeakPositionHA=[Alphabet((NoCells+1)*2+4) '7']; PeakPositionH=strcat(PeakPositionHA(1), PeakPositionHA(2)); varargin=PeakPositionH; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, headerPeak,p*2-1,myString); myPeakH{1}=['Frame']; myPeakH{2}=['Time']; myPeakH{3}=['Intensity i/f']; myPeakH{4}=['Frame duration']; myPeakH{5}=['Time duration']; myPeakH{6}=['Amplitude']; myPeakH{7}=['Amount']; myPeakH{8}=['TimeVsAmplLinearFitSlope']; myPeakH{9}=['LinearFitStdev']; PeakHeader= [myPeakH]; PeakHPosA=[Alphabet((NoCells+1)*2+5) '6']; PeakHPos=strcat(PeakHPosA(1), PeakHPosA(2)); varargin=PeakHPos; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, PeakHeader ,(p*2)-1,myString); PeakTimePositionA=[Alphabet((NoCells+1)*2+5) '7']; PeakTimePosition=strcat(PeakTimePositionA(1), PeakTimePositionA(2)); varargin=PeakTimePosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, Data.x{j}{p},p*2-1,myString); % Time PeakTimePositionA=[Alphabet((NoCells+1)*2+6) '7']; PeakTimePosition=strcat(PeakTimePositionA(1), PeakTimePositionA(2)); varargin=PeakTimePosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, Data.x{j}{p}*Data.TimePerFrame,p*2-1,myString); PeakTimePositionA=[Alphabet((NoCells+1)*2+7) '7']; PeakTimePosition=strcat(PeakTimePositionA(1), PeakTimePositionA(2)); varargin=PeakTimePosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, Data.y{j}{p},p*2-1,myString); FrameDurationPositionA=[Alphabet((NoCells+1)*2+8) '7']; FrameDurationPosition=strcat(FrameDurationPositionA(1), FrameDurationPositionA(2)); varargin=FrameDurationPosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, PeakFrameDuration' ,p*2-1,myString); TimeDurationPositionA=[Alphabet((NoCells+1)*2+9) '7']; TimeDurationPosition=strcat(TimeDurationPositionA(1), TimeDurationPositionA(2)); varargin=TimeDurationPosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, PeakTimeDuration' ,p*2-1,myString); AmplitudePositionA=[Alphabet((NoCells+1)*2+10) '7']; AmplitudePosition=strcat(AmplitudePositionA(1), AmplitudePositionA(2)); varargin=AmplitudePosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, PeakAmpl' ,p*2-1,myString); AmountPositionA=[Alphabet((NoCells+1)*2+11) '7']; AmountPosition=strcat(AmountPositionA(1), AmountPositionA(2)); varargin=AmountPosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, PeakAmount' ,p*2-1,myString); % Saving the linear fit for n=1:numel(Data.x{j}{p})/2 Data.xOdds{j}{p}(n)=Data.x{j}{p}(2*n-1); Data.PeakAmplOdds{j}{p}(n)=PeakAmpl(2*n-1); end v=zeros(size(Data.PeakAmplOdds{j}{p})); ix=~cellfun('isempty',Data.PeakAmplOdds{j}{p}); Data.AmplOdds=[]; Data.AmplOdds(ix)=[Data.PeakAmplOdds{j}{p}{ix}]; Q=[(Data.xOdds{j}{p}*Data.TimePerFrame)', Data.AmplOdds']; [q1 s1] = polyfit(Q(:,1),Q(:,2), 1); %fits a 1st grade polynomial to Q q1';%the first entry is the first order, the second entry is the zeroth order Data.LinFit{j}{p}=q1'; [y0_fit D] = polyval(q1, Q(:,1), s1); %calculates the stdev (D) around the fit Data.LinFitStdev=mean(D);%stdev Data.Noise2=2*mean(D) % 2 delta corresponding roughly to the 95% confidence interval. The mean is the average of the delta value. LinearFitPositionA=[Alphabet((NoCells+1)*2+12) '7']; LinearFitPosition=strcat(LinearFitPositionA(1), LinearFitPositionA(2)); varargin=LinearFitPosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, q1' ,p*2-1,myString); StdevPositionA=[Alphabet((NoCells+1)*2+13) '7']; StdevPosition=strcat(StdevPositionA(1), StdevPositionA(2)); varargin=StdevPosition; myString = ''; for i=1:length(varargin) if isnumeric(varargin{i}) myString = [myString num2str(varargin{i}) ',']; else myString = [myString varargin{i} ',']; end end xlswrite(files.name, Data.Noise2 ,p*2-1,myString); close all; end close all; end close all; end