Effacer les filtres
Effacer les filtres

import txt file in matlab

8 vues (au cours des 30 derniers jours)
BA
BA le 18 Juin 2024
Modifié(e) : Stephen23 le 19 Juin 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

Réponse acceptée

Image Analyst
Image Analyst le 19 Juin 2024
It looks like just a simple matrix of numbers. Try readmatrix
d = readmatrix(Ftable)
  3 commentaires
BA
BA le 19 Juin 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 le 19 Juin 2024
Modifié(e) : Stephen23 le 19 Juin 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>

Connectez-vous pour commenter.

Plus de réponses (1)

Taylor
Taylor le 18 Juin 2024
The problem is that "d" is not a structure so dot indexing does not apply.
  2 commentaires
BA
BA le 18 Juin 2024
@TaylorDo you have an idea what I should do?
Taylor
Taylor le 18 Juin 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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by