matlab 矩阵输出的数值之间同时需要字符串
mip版 关注:235 答案:3 悬赏:30
解决时间 2021-01-20 04:07
已解决
2021-01-19 06:57
我用如下的程序,得到了一个115行,3列的数值矩阵,
clc
clear
p(1:115,1:3)=zeros(115,3);
p(1,1)=175;
p(1,2)= p(1,1)./0.998372;
p(1,3)= 11;
ap=1.157;
for i= 1:115
p(i+1,1)=p(i,1)-ap;
p(i+1,2)= p(i+1,1)./0.998372;
p(i+1,3)= p(i+1,1).*0.057;
end
p
我这只贴上输出结果的前几行:
p =
175.0000 175.2854 11.0000
173.8430 174.1265 9.9091
172.6860 172.9676 9.8431
171.5290 171.8087 9.7772
…………
但是我现在需要这115行中,每一行的每个矩阵的元素之间有逗号,每一行的头和尾还需要一个字符串。
就是需要得到这样的格式:
p =
abc 175.0000, 175.2854, 11.0000 def
abc 173.8430, 174.1265, 9.9091 def
abc 172.6860, 172.9676, 9.8431 def
abc 171.5290, 171.8087, 9.7772 def
……………………
请问下代码应该怎么写啊???
最佳答案
2021-01-19 07:29
%你是要输入到文件里面去吗?如果是的话如下:
fid=fopen('data.txt','w');
for i=1:115
fprintf(fid,'abc %.4f, %.4f, %.4f def\n',p(i,1),p(i,2),p(i,3));
end
fclose all;
%另外你程序第三行p(1:115,1:3)=zeros(115,3);只需要p=zeros(115,3);就可以了
%for循环开头应该是 for i= 1:114 如果你写for i= 1:115 那p就变成116行了。
%======================================
%如果不是要输出到文件 那请参考
天马《》行空 的答案
全部回答
1楼
2021-01-19 09:13
经测试,程序如下:
[m,n]=size(p);
p1=cell(m,1);
for i=1:m
a=p(i,:);
p1{i}=['abc ' num2str(a,'%.4f, ') ' def'];
end
p=p1
2楼
2021-01-19 07:40
matlab的gui中所有的控件的句柄都在handles结构体中,你直接打当然找不到了。获取句柄的方式如下:
mbfcxs1 =str2num( get(handles.mbfcxs1,'string'))比如我下面这个拟合函数的gui界面回调函数可以这样写
function start_callback(hobject, eventdata, handles)
% hobject handle to start (see gcbo)
% eventdata reserved - to be defined in a future version of matlab
% handles structure with handles and user data (see guidata)
try
delete(allchild(handles.axes1));
end
x1=str2num(get(handles.edit_x,'string'));
y1=str2num(get(handles.edit_y,'string'));
jc=str2num(get(handles.edit_jc,'string'));
rst=polyfit(x1,y1,jc(1));
as=poly2sym(rst)
xmax=max(x1);
xmin=min(x1);
xnum=2*length(x1)+100;
x2=linspace(xmin,xmax,xnum);
y2=polyval(rst,x2);
plot(x1,y1,'o',x2,y2);
set(handles.edit_rst,'string',num2str(rst));
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上信息!
推荐资讯
大家都在看