From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Deleting value in a matrix based on the row in another matrix
Date: Sun, 9 May 2010 23:09:04 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 23
Message-ID: <hs7fag$90p$>
Reply-To: <HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1273446544 9241 (9 May 2010 23:09:04 GMT)
NNTP-Posting-Date: Sun, 9 May 2010 23:09:04 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 2346709
Xref: comp.soft-sys.matlab:634061

Good day,
I wrote the code below to open a series of files, find the standard deviation of each column in the file (3) and and add each standard deviation to a new matrix. It's not perfect, I know. The problem is that some files in the series do not exist or have different names. These do not matter as I am allowed to safely skip some files. But I need to delete those values form the matrix [t] based on the matrix [point] as [point] will have all zeros rows for the missing files.

I'm just starting out in matlab and I wrote this code based on ideas from this forum. I know the problem is with this line of code
 t(:,point == 0,2) = [];
as the other work fine when I delete it. Any suggestions on the correct code will be appreciated.
P.S I know what the code "point(all(point==0,2),:) = [];" does but what does "point==0,2" do?

point = zeros(1000,3);
    t = 41000:1000:379500;
    n = length(t);
        for i = 1:n;
            x = ['trail',num2str(t(i),'%08.0f'),'.dat'];
            g = dir (x);
            if ~isempty(g)
              M = dlmread(x,'',1,0);
              s = std (M,1);
              point(i,:) = s;  
     t(:,point == 0,2) = [];
     point(all(point==0,2),:) = [];