How do I access a folder that is inside the current folder while running a function?

2 visualizzazioni (ultimi 30 giorni)
I am writing a function that in different steps needs to access 1 or 2 files in different folders. The function will look something like this:
function Calculation = calc(n)
where n is the name of the file. Each of the folders will have one file named "N" and I want the program to go through each file and get the image data for that file.
  2 Commenti
Walter Roberson
Walter Roberson il 25 Lug 2015
Is n the name of the folder or the name of the file or the name of the combination?
Sulaiman Alvi
Sulaiman Alvi il 25 Lug 2015
n is the name of the file. there is an "n" file in each of the folders that I am trying to access and I want to access each of them.

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 25 Lug 2015
Presuming that n holds the name of the folder
this_N_name = fullfile(n, 'N'); %N has no extension??
this_data = imread(this_N_name); %imread is not going to be happy with there not being an extension though
  6 Commenti
Sulaiman Alvi
Sulaiman Alvi il 25 Lug 2015
Hey. I ended up writing my own code based on what you gave me. I wanted to test it but it didnt work. Can you take a look at it?
function I3value = I3(f1)
A = double(imread(f1,'bmp'));
I3value = (A);
imshow(I3value)
Above is what I want to do with the file.
Here is the rest of the code:
function nvalue = calcStokes(n)
full_name = fullfile('I0', n.bmp);
I3value = I3(full_name);
disp(I3value)
I0 is the folder i wanted to get it from, and I need to get a file with the name 15 and the bmp format. How can I fix this?
Walter Roberson
Walter Roberson il 25 Lug 2015
full_name = fullfile('I0', sprintf('%d.bmp', n));
By the way, when you are working with images, in a number of contexts MATLAB pays attention to whether the array is uint8 or double. When it is uint8 MATLAB expects the values to be in the range 0 to 255; when it is double MATLAB expects the values to be in the range 0 to 1. I recommend you use
A = im2double(imread(f1,'bmp'));
instead of using double()

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Search Path in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by