User Tools

Site Tools


This is an old revision of the document!

MATLAB helpful hacks

Index Non-Empty Cells in Cell Array


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'));
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!

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!
matlab/matlab_helpful_hacks.1443810404.txt.gz · Last modified: 2015/10/02 18:26 by igorkagan