我得到一个错误,怎么了?在稀疏矩阵逻辑和回答

246(30天)
编写函数
稀疏矩阵是一个几乎所有的大型矩阵的元素相同的值(通常为零)。的正常表示稀疏矩阵占用大量内存时可以捕捉有用的信息更少。一个可能的方式来表示一个细胞稀疏矩阵与向量的第一个元素是一个2-element向量代表稀疏矩阵的大小。第二个元素是一个标量指定默认值的稀疏矩阵。细胞的每个连续的元素向量转换是一个向量代表一个元素有一个值的稀疏矩阵以外的违约。这三个元素是行索引,列索引和实际值。 写一个函数称为“sparse2matrix”细胞需要一个输入向量作为上面定义并返回输出参数称为“矩阵”,其传统的矩阵形式。考虑以下运行:
cellvec = {(2 3) 0 (1 2 3) (2 2 3)};
矩阵= sparse2matrix (cellvec)
矩阵=
0 3 0
0 3 0
17日评论
默罕默德Faizan艾哈迈德
编辑:默罕默德Faizan艾哈迈德 2023年1月1日
函数矩阵= sparse2matrix (input_cell)
矩阵= [];
深圳= input_cell {1};%矩阵的大小
默认= input_cell {2};%的默认值
= 1的矩阵(深圳)*违约;
我= 3:长度(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束

登录置评。

答案(29)

stanleo
stanleo 2019年7月7日
%简单版本
函数矩阵= sparse2matrix (cellvec)
矩阵= cellvec{2} *的(cellvec {1});
m = 3:尺寸(cellvec, 2)
矩阵(cellvec {m} (1) cellvec {m} (2)) = cellvec {m} (3);
结束
6个评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年8月29日
Bhoomika:
我们不知道什么是你的经验水平的编程。我们必须从基本的数学和计算机科学来解释整个代码的方式我们可以相对 确定 你会理解的。至少需要两个教科书的解释。没有人有时间写这一切。
我们建议你问更具体的问题,可以更容易地回答。

登录置评。


AYUSH GURTU
AYUSH GURTU 2019年5月28日
函数(矩阵)= sparse2matrix (incell)
S =大小(incell);
q = S (2) 2;
msize = incell {1};
mdef = incell {2};
矩阵= repmat (mdef msize);
问> 0
矩阵(incell {q + 2} (1) incell {q + 2} (2)) = incell {q + 2} (3);
q = q1;
结束
3评论
默罕默德Faizan艾哈迈德
函数矩阵= sparse2matrix (input_cell)
矩阵= [];
深圳= input_cell {1};%矩阵的大小
默认= input_cell {2};%的默认值
= 1的矩阵(深圳)*违约;
我= 3:长度(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束

登录置评。


帕维尔Radko
帕维尔Radko 2020年8月13日
编辑:帕维尔Radko 2020年8月13日
通过了所有的测试解决方案。可能不是最好的一个(因为我不知道如何biuld默认矩阵更简单的方法),但工作的100%。
%使用instrictions构建一个矩阵称为“矩阵”输入“cellvec”
函数矩阵= sparse2matrix (cellvec)
%我们首先建立一个默认矩阵大小二* jj
我们使用% 1的元素“cellvec”矩阵的大小
2 = 1:cellvec {1} (1, 1)
jj = 1: cellvec {1} (1、2)
%所有元素的矩阵等于“cellvec”的第二个元素
矩阵(二世,jj) = cellvec {2};
结束
结束
%现在我们需要改变默认的矩阵的元素
%的指令位置和价值的元素有“cellvec”
%从第三元素直到年底“cellvec”
zz = 3:长度(cellvec)
%我们称之为“矩阵”元素,并将值分配给他们从第三个元素的子阵“cellvec”
矩阵(cellvec {zz} (1, 1), cellvec {zz} (1、2)) = cellvec {zz} (1、3);
结束
结束
4评论
默罕默德Faizan艾哈迈德
函数矩阵= sparse2matrix (input_cell)
矩阵= [];
深圳= input_cell {1};%矩阵的大小
默认= input_cell {2};%的默认值
= 1的矩阵(深圳)*违约;
我= 3:长度(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束

登录置评。


辛格的阿布
辛格的阿布 2019年4月24日
函数(矩阵)= sparse2matrix (incell);
X =大小(incell);
q = X (2) 2;
msize = incell {1};
mdef = incell {2};
矩阵= repmat (mdef msize);
问> 0
矩阵(incell {q + 2} (1) incell {q + 2} (2)) = incell {q + 2} (3);
打破
结束
输出
矩阵=
0 0 0
0 3 0
要求输出
矩阵=
0 3 0
0 3 0
3评论
默罕默德Faizan艾哈迈德
函数矩阵= sparse2matrix (input_cell)
矩阵= [];
深圳= input_cell {1};%矩阵的大小
默认= input_cell {2};%的默认值
= 1的矩阵(深圳)*违约;
我= 3:长度(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束

登录置评。


Jaimin Motavar
Jaimin Motavar 2019年6月30日
编辑:Jaimin Motavar 2019年6月30日
你能告诉我这个答案是错误的?
函数矩阵= sparse2matrix (a)
e =长度(一个);
兰德(b = {1});
[m, n] =大小(b);
c = {1,3};
d = {1 4};
i = 1: m
j = 1: n
b (i, j) = {1,2};
结束
结束
g = 3: e
f = (g2):(飞行)
p (f) = {1, g} (1,1);
结束
结束
g = 3: e
f = (g2):(飞行)
问(f) = {1, g} (1、2);
结束
结束
g = 3: e
f = (g2):(飞行)
r (f) = {1, g} (1、3);
结束
结束
o = 1(飞行):
b (p (o)、(o)) = r (o);
结束
矩阵= b;
结束
1评论
默罕默德Faizan艾哈迈德
函数矩阵= sparse2matrix (input_cell)
矩阵= [];
深圳= input_cell {1};%矩阵的大小
默认= input_cell {2};%的默认值
= 1的矩阵(深圳)*违约;
我= 3:长度(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束

登录置评。


Litesh Ghute
Litesh Ghute 2020年3月20日
我的代码有什么问题?
函数矩阵= sparse2matrix (v)
垫= 0 ([v {1} (1) {1} (2)));
r =大小(垫);
m = 3;
m < = 4
我= v {m} (1);
j = v {m} (2);
垫(v {m} (i, j)) = v {m} (3);
m = m + 1;
结束
矩阵=垫;
结束
2的评论
默罕默德Faizan艾哈迈德
函数矩阵= sparse2matrix (input_cell)
矩阵= [];
深圳= input_cell {1};%矩阵的大小
默认= input_cell {2};%的默认值
= 1的矩阵(深圳)*违约;
我= 3:长度(input_cell)
矩阵(input_cell{我}(1)input_cell{我}(2))= input_cell{我}(3);
结束

登录置评。


ABINAND PANDIYAN
ABINAND PANDIYAN 2020年4月23日
编辑:ABINAND PANDIYAN 2020年4月23日
%的所有测试用例是对的。试试这个
函数矩阵= sparse2matrix (cellvec)
一个= cellvec {1};
行= (1);
列= (2);
main_value = cellvec {2};
sparse_matrix = main_value *的(行、列);
len =长度(cellvec);
我= 3:长度(cellvec)
改变= cellvec {};
r =改变(1);
c =改变(2);
m =改变(3);
sparse_matrix (r, c) = m;
结束
矩阵= sparse_matrix;
结束
4评论
THIERNO火绒MOUCTAR巴尔德
THIERNO火绒MOUCTAR巴尔德 2020年12月29日
谢谢你这么多!
它是使用变量len工作只是一个建议
len =长度(cellvec);
我=我= 3:兰
结束

登录置评。


SAMARTH MAHESHKUMAR GEMLAWALA
% Compteled测试用例全部成功。
函数矩阵= sparse2matrix (a)
cellvec =一个
p =大小(cellvec)
z = cellvec {1}
x = cellvec {1,2}
矩阵= 0 (z (1,1)、z (1、2);
i = 1: z (1, 1)
j = 1: z (1、2)
矩阵(i, j) = x;
结束
结束
j = 3: p (1、2)
j y = cellvec {1,}
矩阵(y (1,1), y (1、2)) = y (1、3);
结束

Priyansh Kushwaha
Priyansh Kushwaha 2020年5月16日
编辑:Priyansh Kushwaha 2020年5月17日
函数矩阵= sparse2matrix (a)
b = {1}
b1 = b (1,1);
b2 = b (1、2);
e = 1 (b1, b2);
b = {1,2}
e = b。* (e);
我= 3:长度(a)
c = {1,};
d1 = c (1);
d2 = c (1、2);
d3 = c (1、3);
e (d1, d2) = d3;
矩阵= e;
结束
矩阵= e;
结束
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年5月17日
但有分号,所以它不会显示任何东西。

登录置评。


utkarsh辛格
utkarsh辛格 2020年5月21日
编辑:utkarsh辛格 2020年5月21日
函数矩阵= sparse2matrix (a)
行= {1}(1,1);
col = {1} (1、2);
默认= {1,2};%或只是默认= {1,2}
= 1的矩阵(行,坳)*违约;% = 1的矩阵({1})* deafult .....不需要找到行和坳
m = 3:长度(a)
矩阵({m}(1, 1),一个{m} (1、2)) = {m} (1、3);
结束

塔伊夫·艾哈迈德BIpul
塔伊夫·艾哈迈德BIpul 2020年5月24日
函数矩阵= sparse2matrix (cellvec)
m = (cellvec {1} (1) cellvec {1} (2));
m = m。* cellvec {2};
我= 3:长度(cellvec)
米(cellvec{我}(1)cellvec{我}(2))= cellvec{我}(3);
结束
矩阵= m;

艾哈迈德埃及客轮
艾哈迈德埃及客轮 2020年6月7日
函数矩阵= sparse2matrix (ce)
后来= 1 (ce {1} (1,1)、ce {1 1} (1、2)) * ce {1,2};
siz =大小(ce);
i = siz (1、2);
2 = 3:我
后来(ce {1, 2} (1,1)、ce {1, 2} (1、2)) = ce {1, 2} (1、3);
结束
矩阵=后来;

Shikha Thapa
Shikha Thapa 2020年6月13日
函数矩阵= sparse2matrix (cellvec)
矩阵= cellvec{1,2} *的([cellvec {1} (1) cellvec {1} (2)));
= 3:长度(cellvec)
矩阵(cellvec {1,} (1, 1), cellvec {1,} (1、2)) = cellvec {1,} (1、3);
结束
1评论
Shikha Thapa
Shikha Thapa 2020年6月13日
你可以得到的帮助回答并相应代码自己的逻辑! !

登录置评。


Kumar Shubham
Kumar Shubham 2020年7月12日
编辑:Kumar Shubham 2020年7月12日
函数矩阵= sparse2matrix (cellvec)
%创建矩阵的要求。大小。
矩阵= 0 (cellvec {1});
%分配标量值分配给所有元素。
矩阵(:)=交易(cellvec {2});
%循环maipulate矩阵用于结果。
%使用断点来查看结果一步一步的方法。
2 = 3:长度(cellvec)
矩阵(cellvec {2} (1, 1), cellvec {2} (1、2)) = cellvec {2} (1、3);
结束
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年7月12日
你为什么使用交易吗?你期待cellvec{2}将扩展到多个以逗号分隔的元素?与一个标量指数不会发生像{2}
如果你想要复制一个值在cellvec expectd{2}左边的所有元素,那么你不需要协议()。

登录置评。


Ishani Uthpala
Ishani Uthpala 2020年8月1日
函数矩阵= sparse2matrix (v)
= v{1,2} * 1的矩阵(v {1 1} (1, 1), v {1 1} (1、2);
y =长度(v);
x = 3: y
矩阵(v {x} (1,1), v {1, x} (1、2) v = {1, x} (1、3);
x = x + 1;
结束
矩阵;
结束

sushmanth pulavarthi
sushmanth pulavarthi 2020年8月3日
函数矩阵= sparse2matrix (v)
行v ={1}(1);列v = {1 1} (2);%提取总没有。sprase矩阵的行和列
级= v {2};%提取默认值
m = *级的(行、列);
我= 3:长度(v)%创造循环foor改变除了默认的值
r = v {} (1);
c = v {} (2);
m (r、c) = v{我}(3);
结束
矩阵= m;
结束
%这适用于任何没有。的元素

A.H.M.Shahidul伊斯兰教
A.H.M.Shahidul伊斯兰教 2020年8月6日
% 100%的准确率
函数矩阵= sparse2matrix (m)
m =细胞(m);
m r = {1} (1); m c = {1} (2); dv = m {2};
党卫军=大小(m);
矩阵=稀疏(r、c) + dv;
q = ss (1、2);
2 = 3:问
矩阵(m {2} (1) {2} (2)) = m {2} (3);
结束
1评论
里克
里克 2020年8月6日
谢谢,现在我可以欺骗我的作业没有打扰理解问题和解决方案。
稍微严重注意:你忘记关闭。虽然你不 需要 它,它已经变得更加普遍,尤其是可以将函数在脚本文件中。

登录置评。


阿里·拉扎。
阿里·拉扎。 2020年9月9日
函数矩阵= sparse2matrix (x)
M = x {1};
m = 1 (m (1), (2)) * x {2};
[~,len] = (x)大小;
如果len = = 3
我= 3;
m (x{我}(1),{我}(2))= x{我}(3);
其他的
我= 3:兰
m (x{我}(1),{我}(2))= x{我}(3);
结束
结束
矩阵= m;
结束

成员Mukul拉伊
成员Mukul拉伊 2020年10月22日
编辑:成员Mukul拉伊 2020年10月22日
函数矩阵= sparse2matrix (a)
asize =长度(a);
r = {1} (1,1);
c = {1} (1、2);
z = 0 (r, c)
z (,) = {2};
如果asize < = 2
矩阵z =
返回
结束
jj = 3: asize
r1 = {jj} (1, 1);
c1 = {jj} (1、2);
n1 = {jj} (1、3);
z (r1, c1) = n1
结束
矩阵z =

阿卜杜勒·卡迪尔汗
阿卜杜勒·卡迪尔汗 2020年11月6日
函数矩阵= sparse2matrix (cellvec)
m = cellvec {1} (1,1);
n = cellvec {1} (1、2);
defult = (m, n)。* cellvec {1,2};
我= 3:长度(cellvec)
r1 = cellvec{我}(1,1);
c1 = cellvec{我}(1、2);
defult (r1, c1) = cellvec{我}(1、3);
结束
矩阵= defult;
结束

zehra乌
zehra乌 2020年11月12日
这是另一个解决方案。
函数m = sparse2matrix (a)
[t c] =大小(一个);
m = 0 ({1});
(x, y) = (m)大小;
2 = 1:x;
jj = 1: y;
米(ii, jj) = {1,2};
结束
结束
我= 3:c;
v = (1,);
m (v {1} (1, 1), v {1 1} (1、2) v = {1 1} (1、3);
结束

阿尔贝托•吉尔
阿尔贝托•吉尔 2020年12月29日
编辑:阿尔贝托•吉尔 2020年12月29日
你好,
你怎么看待这段代码?
函数矩阵= sparse2matrix (cll)
如果iscell (cll) = = 1
%申报值,c =数组的大小;cdn =名义价值;N =最大价值;
cs = cll {1};cdn = cll {1,2};N =大小(慢性淋巴细胞白血病,2);
%建立矩阵与标称值的大小。
厘米= (cs) * cdn的;
n = 3: n;
慢性淋巴细胞白血病cxdn = {1, n};
%选择输入值的值。
厘米(cxdn (1, 1), cxdn (1、2)) = cxdn (1、3);
结束
矩阵=厘米;
其他的
错误(输入的必须是一个细胞类的);
结束
结束
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年12月30日
这个问题似乎并没有要求你确认输入是一个细胞。

登录置评。


鑫易出乎利奥
鑫易出乎利奥 2021年1月19日
函数矩阵= sparse2matrix (cellx)
矩阵= 0 (cellx {1});
矩阵(:,)= cellx {2};
2 = 3:长度(cellx)
num = cellx {2};
全国矿工工会矩阵(num (1), (2)) = num (3);
结束
结束
1评论
里克
里克 2021年1月19日
这个答案添加什么?它教什么?为什么不删除?

登录置评。


明阮
明阮 2021年3月27日
编辑:明阮 2021年3月27日
我的想法关于这个
函数矩阵= sparse2matrix (ABC)
ABC r = {1} (1);
ABC c = {1} (2);
B = 0 (r、c);%零矩阵
B(1:结束)= ABC {2};%与第二个元素的稀疏矩阵
我= 3:长度(ABC)%和添加
a1 ABC{我}= (1,1);
a2 ABC{我}= (1、2);
ABC B (a1, a2) ={我}(1、3);
结束
矩阵= B;
结束

火焰沙
火焰沙 2021年9月13日
编辑:沃尔特·罗伯森 2021年9月13日
函数矩阵= sparse2matrix (cellvec)
jj = cell2mat (cellvec);
m = jj (3) * 1 (jj ([1, 2]));
n = 4;
n < =长度(jj)
米(jj (n), jj (n + 1) = jj (n + 2);
n = n + 3;
结束
矩阵= m;

Sumanth Bayya
Sumanth Bayya 2021年10月19日
编辑:Sumanth Bayya 2021年10月19日
函数M = sparse2matrix (cellvec)
深圳= cellvec {1};
val = cellvec {2};
M = val *的(深圳);
我= 3:长度(cellvec)
el = cellvec {};
((1)、(2))= el (3);
结束
结束

Ujwal Dhakal
Ujwal Dhakal 2022年1月7日
函数矩阵= sparse2matrix (cellvec)
[b] =大小(cellvec);%的商店在b细胞数量的元素而总是1 cellvec是一个矢量
a = cellvec {1};%是矩阵的大小,加载到一个向量
default_element = cellvec {1,2};
% preallocating矩阵与所有元素的大小m * n违约
我= 1:(1)%(1)矩阵的行不
j = 1: (2)%(2)是没有的列矩阵
矩阵(i, j) = cellvec {1,2};
结束
结束%生成矩阵所有元素设置为默认值
2 = 3:b%这个循环从3 -细胞vec没有的元素
矩阵(cellvec {1, 2} (1, 1), cellvec {1, 2} (1、2)) = cellvec {1, 2} (1、3);
结束

Karnajit Banik
Karnajit Banik 2022年1月26日
编辑:沃尔特·罗伯森 2022年10月15日
函数M = sparse2matrix (cellvec)
深圳= cellvec {1};
val = cellvec {2};
M = val *的(深圳);
我= 3:长度(cellvec)
el = cellvec {};
((1)、(2))= el (3);
结束
结束

昱安朱
昱安朱 2023年3月11日
函数矩阵= sparse2matrix (cellvec)
矩阵= cellvec{2} *的(cellvec {1 1});
2 = 3:长度(cellvec)
矩阵(cellvec {2} (1) cellvec {2} (2)) = cellvec {2} (3);
结束

类别

找到更多的在数学帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!