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 revisionPrevious revision
Next revision
Previous revision
matlab:matlab_helpful_hacks [2015/08/07 17:07] igorkaganmatlab:matlab_helpful_hacks [2022/12/29 07:15] (current) – external edit 127.0.0.1
Line 2: Line 2:
  
  
-=== Index Non-Empty Cells in Cell Array ===+==== Index Non-Empty Cells in Cell Array ====
      
  
Line 10: Line 10:
 x = {1,[],[],[]}; find(~cellfun(@isempty,x)) </code> x = {1,[],[],[]}; find(~cellfun(@isempty,x)) </code>
  
-=== startup.m === 
  
-Starting folder for MATLAB (in the icon | Properties | Start in ) (e.g. D:\Sources\MATLABallows controlling different paths and other settings via startup.m file placed in the folder, e.g.: +==== Exiting loop (for / while -> pausegracefully ==== 
 +(i.e., without "ctrl-C" abort)
  
 +For example, when paging thru trials:
 <code matlab> <code matlab>
-disp('Welcome to physiology analysis...'); +figure('Name','Plot trial','CurrentChar',' '); 
-set_sources_path+for k = 1:length(trial), 
-cd('F:\Data'); +... 
-EditorMacro('Alt-Control-h', @createHeaderComment_dag);+ drawnow; pause;  
 + if get(gcf,'CurrentChar')=='q', % pressing "q" will exist the loop, make 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> 
 +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!
  
-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.
 +
 +==== Close all windows in Editor ====
 +<code matlab>closeNoPrompt(matlab.desktop.editor.getAll);</code>
 +
 +
  
matlab/matlab_helpful_hacks.1438967242.txt.gz · Last modified: 2022/12/29 07:15 (external edit)