Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: This function crashes matlab occasionally... why?!
Replies: 1   Last Post: Jul 19, 2012 9:46 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
spasmous

Posts: 303
Registered: 12/10/05
This function crashes matlab occasionally... why?!
Posted: Jul 18, 2012 9:07 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

I have a function that displays several images in one figure (see below). I've also been experiencing a lot of MATLAB/Java crashes that I think can be traced to this function. I'm not sure why it happens... it's quite rare, once a week or two. Can someone tell me what is causing the problem?


q=repmat(phantom(256,256),[1 1 9]);
ims(q)



function ims(im,RANGE,TITLE)

% RANGE: e.g. [0 1] for [hi lo] or [0 1;NaN 100;...] for individual ranges
% (note: use [] or NaN for no range)
% TITLE: ['plot1';'plot2';...] (must be same length)

% make into 3D array
im = squeeze(im);
[x y n] = size(im);
im = reshape(im,x,y,n);

% try and figure out a nice tiling
rows = floor(sqrt(n));
cols = ceil(n/rows);
N = [rows cols];

% clear existing plots
clf reset

% plot here
for i = 1:N(1)
for j = 1:N(2)
k = (i-1)*N(2)+j;
if k>n; break; end

lo = min(min(im(:,:,k)));
hi = max(max(im(:,:,k)));

if exist('RANGE','var') && ~isempty(RANGE)
if size(RANGE,1)==1 % use same setting for all
if ~isnan(RANGE(1,1));lo = RANGE(1,1);end
if ~isnan(RANGE(1,2));hi = RANGE(1,2);end
else
if k<=size(RANGE,1) % individual ranges
if ~isnan(RANGE(k,1));lo = RANGE(k,1);end
if ~isnan(RANGE(k,2));hi = RANGE(k,2);end
end
end
end
subplot(N(1),N(2),k);
if lo==hi
imagesc(im(:,:,k));
else
imagesc(im(:,:,k),[lo hi]);
end
axis off
if exist('TITLE','var') && ~isempty(TITLE)
if k<=size(TITLE,1)
title(TITLE(k,:),'FontSize',10)
end
end
end
end

% if extra space, put focus on "next" plot
if k<=N(1)*N(2)
subplot(N(1),N(2),k)
axis off
end



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.