I read a 3d image in matlab and converts to a matrix of size 100036*3.Now i want to find correlation coefficient of this matrix separately in x,y &z direction in matlab

1 visualizzazione (ultimi 30 giorni)
I want to find correlaion coefficient in different directions separately .But for finding correlation coefficient i need two variable.So how i can find correlation coefficients in x- direction, y-direction and z-direction separately

Risposta accettata

Subhajyoti
Subhajyoti il 15 Lug 2024
Hi Reet,
To efficiently compute the correlation coefficients, we will shift the data along each direction and compute the correlation between the original and shifted data.
Here’s MATLAB code snippet to illustrate using ‘corrcoef’ function for data-matrix:
Step 1: Read the 3D image
% For demonstration, we will generate a random 3D matrix
Nx = 100; Ny = 100; Nz = 10; % Replace with actual dimensions
img3D = rand(Nx, Ny, Nz); % Replace with actual image data
sizeOfImage = size(img3D)
sizeOfImage = 1x3
100 100 10
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Step 2: Calculate correlation coefficients
% For x-direction
x_original = img3D(1:end-1, :, :);
x_shifted = img3D(2:end, :, :);
x_original_flat = x_original(:);
x_shifted_flat = x_shifted(:);
corr_x = corrcoef(x_original_flat, x_shifted_flat);
corr_x = corr_x(1, 2) % Get the correlation coefficient
corr_x = 0.0035
% For y-direction
y_original = img3D(:, 1:end-1, :);
y_shifted = img3D(:, 2:end, :);
y_original_flat = y_original(:);
y_shifted_flat = y_shifted(:);
corr_y = corrcoef(y_original_flat, y_shifted_flat);
corr_y = corr_y(1, 2)
corr_y = -0.0013
% For z-direction
z_original = img3D(:, :, 1:end-1);
z_shifted = img3D(:, :, 2:end);
z_original_flat = z_original(:);
z_shifted_flat = z_shifted(:);
corr_z = corrcoef(z_original_flat, z_shifted_flat);
corr_z = corr_z(1, 2)
corr_z = 1.6429e-04
Step 3: Display the results
fprintf('Correlation coefficient in x direction: %f\n', corr_x);
Correlation coefficient in x direction: 0.003540
fprintf('Correlation coefficient in y direction: %f\n', corr_y);
Correlation coefficient in y direction: -0.001345
fprintf('Correlation coefficient in z direction: %f\n', corr_z);
Correlation coefficient in z direction: 0.000164
For more details on the Correlation coefficients, go through the following MathWorks documentation.

Più risposte (0)

Categorie

Scopri di più su Denoising and Compression in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by