User Tools

Site Tools


matlab:matlab_helpful_hacks

MATLAB helpful hacks

Index Non-Empty Cells in Cell Array

startup.m

When MATLAB starts, it will look for a pathdef.m file in its startup directory.

Start up folder (in the MATLAB icon | Properties | Start in ) (e.g. D:\Sources\MATLAB) allows controlling different paths and other settings via startup.m file placed in the folder, e.g.:

disp('Welcome to physiology analysis...');
set_sources_path; % set additional paths dynamically, e.g. 
% addpath(genpath('D:\Sources\MATLAB'));
 
cd('F:\Data');
edit;
EditorMacro('Alt-Control-h', @createHeaderComment_dag);
 
dbstop if error

Exiting loop (for / while -> pause) gracefully

(i.e., without “ctrl-C” abort)

For example, when paging thru trials:

figure('Name','Plot trial','CurrentChar',' ');
for k = 1:length(trial),
...
	drawnow; pause;		
	if get(gcf,'CurrentChar')=='q', % pressing "q" will exist the loop, make sure focus is on the figure!
		break;
	end
	clf;
end

Finding indices between two vectors of start and end indices, using arrayfun

Assume we have two vectors, repeated_segments_start_idx, and repeated_segments_end_idx, and we want to find all indices between each pair.

idx = [repeated_segments_start_idx(segments2remove_idx):repeated_segments_end_idx(segments2remove_idx)] % DOES NOT WORK, OF COURSE!
 
idx = cell2mat(arrayfun(@colon,repeated_segments_start_idx,repeated_segments_end_idx,'UniformOutput',false)); % WORKS!

Maximize figure window

set(gcf,'units','normalized','outerposition',[0 0 1 1]);

Plot an ''imagesc'' with transparent NaNs

h = imagesc(X,Y,C);
set(h,'alphadata',~isnan(C));
matlab/matlab_helpful_hacks.txt · Last modified: 2017/05/24 18:34 by igorkagan