# How to convert a matrix of double to int?

1.147 visualizzazioni (ultimi 30 giorni)
Emilie Mussard il 5 Dic 2013
Commentato: Steven Lord il 13 Set 2023
I need to convert my matrix [648x2400 double] into integers value to use a mRMR function, but I do not know how to do that. I have tried to convert by uint8(matrix) or int8(matrix) but it does not give integers... And I always have this note: "Undefined function 'mrmr_mid_d' for input arguments of type 'int8' " (or double, or uint, and so on) can someone help me? thank you
##### 3 CommentiMostra 2 commenti meno recentiNascondi 2 commenti meno recenti
Steven Lord il 13 Set 2023
The format function does not change how the data is stored. It simply changes how the data is displayed.

Accedi per commentare.

### Risposta accettata

Wayne King il 5 Dic 2013
Modificato: Wayne King il 5 Dic 2013
I'm not sure what you are saying. Do you mean that:
X = 10+randn(16,16);
X = uint8(X);
Does not result in integers for the output in X?
The error message you report ("Undefined function 'mrmr_mid_d' for input arguments of type 'int8' ") just sounds like MATLAB cannot recognize the function, mrmr_mid_d.m.
You need to add the folder containing that function to the MATLAB path. You can launch
>>pathtool
##### 1 CommentoMostra NessunoNascondi Nessuno
Emilie Mussard il 5 Dic 2013
Thank you, I hadn't thought of the path problem and I focused on a wrong problem!

Accedi per commentare.

### Più risposte (3)

Kelly Kearney il 5 Dic 2013
It's possible that mrmr_mid_d.m isn't on your path; the other possibility is that it doesn't actually accept integer data types as input, but integer values stored as double arrays. In this case, you need to round your data in some manner (see round, ceil, floor, fix, etc)
x = rand(10)*10;
x = round(x);
mrmr_mid_d(x); % or whatever the syntax is...
##### 0 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

Accedi per commentare.

MathWorks Support Team il 27 Nov 2018
To convert an array of type “double” to an integer type, you can use a function such as “int64”, which converts the input to a 64-bit integer. For example, consider the following:
x_double = [1 2 3];
x_int = int64(x)
##### 0 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

Accedi per commentare.

sixwwwwww il 5 Dic 2013
you can do it as follow:
a = randi(100, 4);
a = int64(a);
##### 2 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
Munawara Munia il 26 Apr 2016
Hi Emilie, I am facing the same problem. I ama also trying to use mRMR and getting the same errors. Could you kindly tell me what was the issues with your code and how you solved it..?? Badly need a solution about it. Thanks in advance. :)

Accedi per commentare.

### Categorie

Scopri di più su Data Type Conversion 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