how to remove zeroes from the end of column in a matrice
1 次查看(过去 30 天)
显示 更早的评论
hi
i have wrritten this codes that proces data from excel file, the data file is of measurments.
[app.filenameZT,pathname] = uigetfile({'*.xls';'*.xlsx'},MultiSelect="on");
app.C=iscell(app.filenameZT(1,2));
if app.C==1
app.LengthZT=length(app.filenameZT);
else
app.LengthZT=1;
end
if app.C==1
for i=1:numel(app.filenameZT)
ZT(i)=importdata(fullfile(pathname,app.filenameZT{i}));
app.t(1:length(ZT(i).data(:,1)),i)=ZT(i).data(:,1);
app.S(1:length(ZT(i).data(:,2)),i)=ZT(i).data(:,2);
app.R(1:length(ZT(i).data(:,3)),i)=ZT(i).data(:,3).*10^(6);
app.K(1:length(ZT(i).data(:,4)),i)=ZT(i).data(:,4);
app.zT(1:length(ZT(i).data(:,5)),i)=ZT(i).data(:,5);
end
else
ZT=importdata(fullfile(pathname,app.filenameZT));
app.t=ZT.data(:,1);
app.S=ZT.data(:,2);
app.R=ZT.data(:,3);
app.K=ZT.data(:,4);
app.zT=ZT.data(:,5);
end
if app.C==1
figure (1)
plot(app.t,app.S,'linewidth',2);
hold on
for i=1:numel(app.filenameZT)
plot(app.t(i),app.S(i),'linewidth',2);
end
title('Seebeck Coefficient','fontweight','bold','fontsize',22)
xlabel('T[C]','fontweight','bold','fontsize',22)
ylabel ('\alpha[\muV/K]','fontweight','bold','fontsize',22)
legend (app.filenameZT);
grid minor
hold off
%ploting ressetivity
figure (2)
plot(app.t,app.R,'linewidth',2);
hold on
for i=1:numel(app.filenameZT)
plot(app.t(i),app.R(i),'linewidth',2);
end
title('Electrical Resistivity','fontweight','bold','fontsize',22)
xlabel('T[C]','fontweight','bold','fontsize',22)
ylabel('\rho[\mu\Omega*cm]','fontweight','bold','fontsize',22)
grid minor
legend (app.filenameZT);
hold off
figure (3)%% ploting kappa
plot(app.t,app.K,'linewidth',2);
hold on
for i=1:numel(app.filenameZT)
plot(app.t(i),app.K(i),'linewidth',2);
end
title('Thermal Conductivity','fontweight','bold','fontsize',22)
xlabel('T[C]','fontweight','bold','fontsize',22)
ylabel('\kappa[W/cm*C]','fontweight','bold','fontsize',22)
grid minor
legend (app.filenameZT);
hold off
figure (4)%% ploting zT
plot(app.t,app.zT,'linewidth',2);
hold on
for i=1:numel(app.filenameZT)
plot(app.t(i),app.zT(i),'linewidth',2);
end
title('Figure of Merit zT','fontweight','bold','fontsize',22)
xlabel('T[C]','fontweight','bold','fontsize',22)
ylabel('zT','fontweight','bold','fontsize',22)
grid minor
legend (app.filenameZT);
hold off
else
figure (1)
plot(app.t,app.S,'color','b','linewidth',2);
hold on
plot(app.t,app.S,'color','r','linewidth',2);
title('Seebeck Coefficient','fontweight','bold','fontsize',22)
xlabel('T[C]','fontweight','bold','fontsize',22)
ylabel ('\alpha[\muV/K]','fontweight','bold','fontsize',22)
legend (app.filenameZT);
grid minor
hold off
%ploting ressetivity
figure (2)
plot(app.t,app.R,'color','b','linewidth',2);
hold on
plot(app.t,app.R,'color','r','linewidth',2);
title('Electrical Resistivity','fontweight','bold','fontsize',22)
xlabel('T[C]','fontweight','bold','fontsize',22)
ylabel('\rho[\mu\Omega*cm]','fontweight','bold','fontsize',22)
grid minor
legend (app.filenameZT);
hold off
figure (3)%% ploting kappa
plot(app.t,app.K,'color','b','linewidth',2);
hold on
plot(app.t,app.K,'color','r','linewidth',2);
title('Thermal Conductivity','fontweight','bold','fontsize',22)
xlabel('T[C]','fontweight','bold','fontsize',22)
ylabel('\kappa[W/cm*C]','fontweight','bold','fontsize',22)
grid minor
legend (app.filenameZT);
hold off
figure (4)%% ploting zT
plot(app.t,app.zT,'color','b','linewidth',2);
hold on
plot(app.t,app.zT,'color','r','linewidth',2);
title('Figure of Merit zT','fontweight','bold','fontsize',22)
xlabel('T[C]','fontweight','bold','fontsize',22)
ylabel('zT','fontweight','bold','fontsize',22)
grid minor
legend (app.filenameZT);
hold off
end
the problem is that not all the file have the same length of data, so what happens is that in the end of the shorter length data zeroes are add, how can i delete those zeroes at the end of the columns?
files to use the code are attached
0 个评论
回答(1 个)
Walter Roberson
2023-5-21
after the importdata,
lastused = find(any(zT(i).Data,2),1,'last');
zT(i).Data = zT(i).Data(1:lastused,:);
2 个评论
Walter Roberson
2023-5-22
If different columns have different number of trailing 0 and you want to trim each one independently to remove the trailing 0, then unless you replace the values with something else (such as nan) you cannot store the result as a table() object. It also appear to me that your plotting would give you problems, unless you trimmed down t for each variable indepdently.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!