matlab 输出矩阵 逗号,matlab 矩阵输出的数值之间同时需要字符串

matlab 矩阵输出的数值之间同时需要字符串

mip版  关注:235  答案:3  悬赏:30

解决时间 2021-01-20 04:07

bf4250ec85bbba7b4f7a1616e795efcb.png

已解决

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

……………………

请问下代码应该怎么写啊???

最佳答案

9669ce8692775d2380a0b9d761c9a88d.png

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行了。

%======================================

%如果不是要输出到文件 那请参考

天马《》行空 的答案

全部回答

5783339ab7b7e7058ecb8d90d9ebcc0a.png

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

e86ba0330c47ecd8b78882988390b437.png

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));

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

点此我要举报以上信息!

推荐资讯

大家都在看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值