User Tools

Site Tools


matlab:matlab_helpful_hacks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
matlab:matlab_helpful_hacks [2015/08/11 15:31]
igorkagan
matlab:matlab_helpful_hacks [2019/07/10 11:46] (current)
igorkagan
Line 10: Line 10:
 x = {1,​[],​[],​[]};​ find(~cellfun(@isempty,​x)) </​code>​ x = {1,​[],​[],​[]};​ find(~cellfun(@isempty,​x)) </​code>​
  
-==== startup.m ==== 
  
-When MATLAB starts, it looks for a pathdef.m file in its startup directory.+==== Exiting loop (for / while -> pause) gracefully ==== 
 +(i.e., without "​ctrl-C"​ abort)
  
-Start up folder ​(in the icon | Properties | Start in ) (e.gD:​\Sources\MATLAB) allows controlling different paths and other settings via startup.m file placed in the foldere.g.+For example, when paging thru trials: 
 +<code matlab>​ 
 +figure('​Name','​Plot trial','​CurrentChar','​ ')
 +for k = 1:length(trial), 
 +... 
 + drawnow; pause;  
 + if get(gcf,'​CurrentChar'​)=='​q',​ % pressing "​q"​ will exist the loopmake sure focus is on the figure! 
 + break; 
 + end 
 + clf; 
 +end 
 +</​code>​ 
 + 
 + 
 +==== 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
  
 <code matlab> <code matlab>
-disp('​Welcome to physiology analysis...'​)+idx = [repeated_segments_start_idx(segments2remove_idx):repeated_segments_end_idx(segments2remove_idx)] % DOES NOT WORK, OF COURSE! 
-set_sources_path;​ % set additional paths dynamically,​ e.g. p = genpath('​D:\Sources\MATLAB'​);​ addpath(p); + 
-cd('​F:​\Data'​);​ +idx = cell2mat(arrayfun(@colon,​repeated_segments_start_idx,​repeated_segments_end_idx,​'UniformOutput',false)); % WORKS!
-edit; +
-EditorMacro('Alt-Control-h', ​@createHeaderComment_dag);+
  
-dbstop if error 
 </​code>​ </​code>​
  
 +
 +==== Maximize figure window ====
 +<code matlab>​set(gcf,'​units','​normalized','​outerposition',​[0 0 1 1]);</​code>​
 +
 +
 +
 +==== Plot an ''​imagesc''​ with transparent NaNs ====
 +
 +<code matlab>
 +h = imagesc(X,​Y,​C);​
 +set(h,'​alphadata',​~isnan(C));​
 +</​code>​
 +
 +
 +==== Shifting colormaps ====
 +Sometimes the colormap plots are shifted after printing. To fix this:
 +- in Adobe Illustrator,​ click on the colormap, release clipping mask, and go to "​Object",​ "​Rasterize",​ in the "​Resolution"​ part click on the "Use Document Raster Effects Resolution"​.
 +
 +You have to do it for each of the colormaps.
  
  
  
matlab/matlab_helpful_hacks.1439307107.txt.gz · Last modified: 2015/08/11 15:31 by igorkagan