matlab里数组的赋值,arrays – MATLAB结构赋值数组
我有一系列結構.讓我們說
s(1).value,…,s(5).value.
我有一個值向量,讓我們說vals = [1 2 3 4 5],我想分配給結構數組.所以用偽代碼寫我想要:s(:).value = vals.
如下所示,有一個已知的解決方案.但是真的不可能像在偽代碼中那樣在1行中進行這個賦值嗎?
% Vector of values
vals = [1 2 3 4 5];
n = length(vals);
% Initialize struct
s(n).values = 0;
% Put vals into my struct.values
[s(1:n).values] = ???
% Known solution that i am not satisfied with:
vals_c = num2cell(vals);
[s(1:n).values] = vals_c{:};
最好的問候,喬納斯
最佳答案 使用
cell2struct與num2cell相結合,可以在一行中完成此操作.
% Vector of values
vals = [1 2 3 4 5];
n = length(vals);
% Put vals into my struct.values
s = cell2struct(num2cell(vals), 'values', 1)
% transpose if orientation is important
s = s.';
它并不漂亮,但它確實在一條線上完成. cell2struct支持多個條目,因此您可以填充許多字段.
最大的缺點是它從頭開始創建結構,因此如果需要將此數據添加到現有結構中,則必須進行結構合并.
總結
以上是生活随笔為你收集整理的matlab里数组的赋值,arrays – MATLAB结构赋值数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [C语言学习]C语言程序设计基础(一)
- 下一篇: matlab水力学工具箱,新浪潮水工设计