I'm working with SDSS data and want to get rid of some fits files from the ones I have downloaded. I have stored the pl #, mjd, fb # in respective variables and the format of SDSS file naming is spec-plate-mjd-fiber.fits where
- plate ranges from 250-3500
- mjd is always 5 digits
- fiber is 1-640.
I want to concatenate the plate, mjd and fiber number to check for the files and exclude/move them. Here's my code
Tz = '-000'; tz = '-00'; oz = '-0'; j=1;for j=1:length(pl) if and(pl(j) < 999, fb(j) < 10) b = ['spec-0', num2str(pl(j)), '-', num2str(mj(j)), Tz, num2str(fb(j))]; end if and(pl(j) < 999, or(fb(j) >= 10, fb(j) < 100)) b = ['spec-0', num2str(pl(j)), '-', num2str(mj(j)), tz, num2str(fb(j))]; end if and(pl(j) < 999, or(fb(j) >= 100, fb(j) < max(fb))) b = ['spec-0', num2str(pl(j)), '-', num2str(mj(j)), oz, num2str(fb(j))]; end if and(pl(j) >= 1000, fb(j) < 10) b = ['spec-', num2str(pl(j)), '-', num2str(mj(j)), Tz, num2str(fb(j))]; end if and(pl(j) >= 1000, or(fb(j) >= 10, fb(j) < 100)) b = ['spec-', num2str(pl(j)), '-', num2str(mj(j)), tz, num2str(fb(j))]; end if and(pl(j) >= 1000, or(fb(j) >= 100, fb(j) < max(fb))) b = ['spec-', num2str(pl(j)), '-', num2str(mj(j)), oz, num2str(fb(j))]; end c{j} = b;end
The problem is with fb < 100, it gives spec-1835-54563-077 instead of spec-1835-54563-0077 and same with fb < 10. How can I solve this?
Best Answer