Borrar filtros
Borrar filtros

import txt file in matlab

8 visualizaciones (últimos 30 días)
BA
BA el 18 de Jun. de 2024
Editada: Stephen23 el 19 de Jun. de 2024
I failed to import the attached txt which I need it to be read with the below function
which converts it into another data shape. I do not know what seems to be the problem. Any ideas?
function FBW = get_FBW(Ftable)
d = importdata(Ftable);
for i = 2:size(d.data,1) % do each row separately
rowdat = d.data(i,:);
rowdat = rowdat(~isnan(rowdat));
col = (rowdat(1:2:end-1));
val = rowdat(2:2:end);
nframes = col(end);
FBW(i-1,:) = zeros(1,nframes);
for j = 2:length(col)
if col(j) - col(j-1) >0
slope = (val(j) - val(j-1)) ./ (col(j) - col(j-1));
for k = 0:col(j)-col(j-1)
FBW(i-1, (col(j-1)+k)) = val((j-1)) + k*slope;
end
end
end
end

Respuesta aceptada

Image Analyst
Image Analyst el 19 de Jun. de 2024
It looks like just a simple matrix of numbers. Try readmatrix
d = readmatrix(Ftable)
  3 comentarios
BA
BA el 19 de Jun. de 2024
and this one for using the code before:Unable to perform assignment because the size of the left side is 1-by-6 and the size of the right side is 1-by-2500.
Error in get_FBW (line 19)
FBW(i-1,:) = zeros(1,nframes);
Stephen23
Stephen23 el 19 de Jun. de 2024
Editada: Stephen23 el 19 de Jun. de 2024
d = readmatrix('Ftable.txt')
d = 2x3
400 1000 2500 70 100 150
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
and remove ".data" from your code. Avoid IMPORTDATA.
for i = 2:size(d,1) % do each row separately
rowdat = d(i,:);
rowdat = rowdat(~isnan(rowdat));
col = (rowdat(1:2:end-1));
val = rowdat(2:2:end);
nframes = col(end);
FBW(i-1,:) = zeros(1,nframes);
for j = 2:length(col)
if col(j) - col(j-1) >0
slope = (val(j) - val(j-1)) ./ (col(j) - col(j-1));
for k = 0:col(j)-col(j-1)
FBW(i-1, (col(j-1)+k)) = val((j-1)) + k*slope;
end
end
end
end
FBW
FBW = 1x70
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>

Iniciar sesión para comentar.

Más respuestas (1)

Taylor
Taylor el 18 de Jun. de 2024
The problem is that "d" is not a structure so dot indexing does not apply.
  2 comentarios
BA
BA el 18 de Jun. de 2024
@TaylorDo you have an idea what I should do?
Taylor
Taylor el 18 de Jun. de 2024
Removing ".data" from the function should fix it (though I'm not entirely clear on the purpose of the function). There may be a better way to do what you're aiming for if you can clarify the goal of your function.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by