Second Order Difference in MATLAB

m = magic(4)
Dd = diff(diag(m),2) %diagonal
Dm = diff(diag(rot90(m)),2) %minor diagonal

http://in.mathworks.com/matlabcentral/answers/16560-second-order-difference

Advertisements

Unwrap the phase

clear all
clc
r=csvread(‘r.csv’);
phase=csvread(‘phase.csv’);
s = size(phase);
count = s(1);
for i=1:count-1

if(phase(i+1)<phase(i))
phase(i+1:end)=phase(i+1:end) + 6.28;
end
end

Read mixed csv file in MATLAB

Use this function

function lineArray = read_mixed_csv(fileName,delimiter)
  fid = fopen(fileName,'r');   %# Open the file
  lineArray = cell(100,1);     %# Preallocate a cell array (ideally slightly
                               %#   larger than is needed)
  lineIndex = 1;               %# Index of cell to place the next line in
  nextLine = fgetl(fid);       %# Read the first line from the file
  while ~isequal(nextLine,-1)         %# Loop while not at the end of the file
    lineArray{lineIndex} = nextLine;  %# Add the line to the cell array
    lineIndex = lineIndex+1;          %# Increment the line index
    nextLine = fgetl(fid);            %# Read the next line from the file
  end
  fclose(fid);                 %# Close the file
  lineArray = lineArray(1:lineIndex-1);  %# Remove empty cells, if needed
  for iLine = 1:lineIndex-1              %# Loop over lines
    lineData = textscan(lineArray{iLine},'%s',...  %# Read strings
                        'Delimiter',delimiter);
    lineData = lineData{1};              %# Remove cell encapsulation
    if strcmp(lineArray{iLine}(end),delimiter)  %# Account for when the line
      lineData{end+1} = '';                     %#   ends with a delimiter
    end
    lineArray(iLine,1:numel(lineData)) = lineData;  %# Overwrite line data
  end
end

And then use it as 

data = read_mixed_csv('myfile.csv',';')

source : http://stackoverflow.com/questions/4747834/import-csv-file-with-mixed-data-types

Then after that we get a cell in data variable, to make a matrix of this cell use

data_m = str2double(data);