MATLAB Answers


how to export the impedance matrix from Feko into Matlab

Asked by Ano
on 7 Nov 2016
Latest activity Commented on by Ano
on 24 Feb 2018 at 22:02

Hello, I would like to export the impedance matrix from FEKO into matlab but Matlab says that the .mat file is corrupted, any help in this issue?! Thank you in advance


Dear experts, I need to plot eigen value graph for characteristic modes with eigen value (339X1) and frequency (22X1) in the range of 1.35ghz to 1.5ghz. I have attached .mat file of eigen value(num.mat) and frequency(frequency.mat). Plz help.

Hello! in order to be able to plot that graph the eigenvalues matrix should be of size (339x22) which means that you get the eigenvalues for each frequency sample.

Log in to comment.

2 Answers

Answer by Klearchos Samaras on 14 Mar 2017
Edited by Klearchos Samaras on 15 Mar 2017
 Accepted Answer

First of all, this *.mat file is not a typical *.mat file. It has a FORTRAN block structure. You can find some useful information here: .

I am a FEKO user too. Well, the mat2ascii.exe utility can be used via Command Prompt and the data can be stored in a *.txt file, however the generated file will only contain the rows, columns, real part and imaginary part of the impedance matrix FOR THE FIRST FREQUENCY OF THE SIMULATION. In other words, if you want to simulate at a frequency range (multiple frequencies) the generated *.mat file contains the data of every impedance matrix, however the mat2ascii.exe utility converts only the data of the first impedance matrix of the simulation to *.txt file. Maybe the *.mat file can be easily read in a FORTRAN environment but I don't know that. I have tried to use the f2matlab routine created by Prof. Ben Barrowes, but it failed. I am no expert in programming, though.

***IMPORTANT: There might be a mistake in the *.txt file generated by mat2ascii.exe. It contains some explanatory text in the beginning and then it contains 4 columns with the data of the first frequency impedance matrix. The first column has the numbers of rows, the second has the numbers of columns, the third has the elements of R matrix (real part) and the fourth has the numbers of X matrix (imaginary part). I believe that the third column should be labeled as imaginary and the fourth as real, because the very first element of the R matrix should always be a positive number (it belongs to the main diagonal and R is positive definite), but in my case it is negative.


Log in to comment.

Answer by Ano
on 21 Oct 2017

Thank you very much for your answer! I just wanted to tell that the real part is ill conditioned that is why you get negative values , you might solve this just by make the negative value = 0. Best regards!


Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today