import txt file in matlab

1 Ansicht (letzte 30 Tage)
BA
BA am 18 Jun. 2024
Bearbeitet: Stephen23 am 19 Jun. 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

Akzeptierte Antwort

Image Analyst
Image Analyst am 19 Jun. 2024
It looks like just a simple matrix of numbers. Try readmatrix
d = readmatrix(Ftable)
  3 Kommentare
BA
BA am 19 Jun. 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 am 19 Jun. 2024
Bearbeitet: Stephen23 am 19 Jun. 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>

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Large Files and Big Data finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by