MATLAB对多个变量同时赋值

阅读: 评论:0

2024年2月3日发(作者:)

MATLAB对多个变量同时赋值

MATLAB对多个变量赋值(实现连等)

转自:/s/blog_

x=y=z=100

对a,b和c分别赋值1,2和3

a,b,c=1,2,3

这样的语句在python是合法的,但是在MATLAB的中是不合法的,那到底MATLAB中是否有其它解决方案呢。呵呵偷偷告诉您,这个是有滴。

MATLAB中提供了deal函数进行多变量赋值处理,且用处很大哦。该函数最基本语法为

[Y1, Y2, Y3, ...] = deal(X),即Y1=Y2=Y3=X

[Y1, Y2, Y3, ...] = deal(X1, X2, X3, …),即Y1=X1,Y2=X2,Y3=X3

上面只是函数的基本用法,有些人觉得也没什么呀,哈哈其实您错了,这个函数的用处大着呢。我需要从细心看问题,才能看到本质。

在讲解之前先说两个小知识点:

(1)如果x={‘mat’,'lab’,'sky’},那么x{:}结果完全等效于:x{1},x{2},x{3},注意三个数据之间有逗号分隔开

(2)如果x(1).url=’mat’,x(2).url=’lab’,x(3).url=’sky’,也就是说x是一个结构体数组,那么将完全等效于:x(1).url,x(2).url,x(3).url,注意有逗号分隔

例子1:对x,y,z同时初始化为100

>> [x,y,z]=deal(100)

x =

100

y =

100

z =

100

例子2:对a,b,c分别初始化为mat,lab,sky

>> [a,b,c]=deal(‘mat’,'lab’,'sky’)

a =

mat

b =

lab

c =

sky

例子3:将Cell数组x={1 2 3}中的1,2,3分别赋值给a,b,c

>> x={1 2 3};

>> [a,b,c]=deal(x{:}) % 注意[a,b,c]=deal({1 2 3})是错误的

a =

1

b =

2

c =

3

例子4:将cell数组x={1 2 3}分别付给结构数组y的data字段

>> x={1 2 3};

>> [y(1:3).data]=deal(x{:})

y =

1×3 struct array with fields:

data

例子5:将结构体数组A的age字段全部赋值为0

>> [A(1:100).age]=deal(0)

A =

1×100 struct array with fields:

age

如果您的MATLAB版本是7.0以上,那么有时deal函数可以直接省略,请往下看!

其实MATLAB中只要等号两边的表达式中,逗号的个数相等就可以直接省略deal进行赋值,注意等号右边的逗号表达式不能手工敲入,只能使用x{:}和等两种形式得到的等效逗号表达式,但左边可以使用[a,b]的手动逗号形式。

>> x={10 20};

>> [a,b]=x{:}

a =

10

b =

20

>> web(1).url=’matlabsky’;web(2).url=’mathsky’;

>> [a,b]=

a =

matlabsky

b =

mathsky

MATLAB对多个变量同时赋值

本文发布于:2024-02-03 14:55:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170694330050680.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:matlab细胞数组
标签:逗号   赋值   函数
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23